zoukankan      html  css  js  c++  java
  • js导入excel

              /* FileReader共有4种读取方法:

                 1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。

                 2.readAsBinaryString(file):将文件读取为二进制字符串

                 3.readAsDataURL(file):将文件读取为Data URL

                 4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'

               */


    <input type="file" name="myFile" id="myFile" onchange="importf(this)" value="EXCEL导入" />
            var wb;//读取完成的数据
            var rABS = true; //是否将文件读取为二进制字符串
            function importf(obj) {//导入
                if (!obj.files) {
                    return;
                }
                var f = obj.files[0];
                var reader = new FileReader();
                reader.onload = function(e) {
                    var data = e.target.result;
                    if (rABS) {
                        wb = XLSX.read(btoa(fixdata(data)), {//手动转化
                            type : 'base64'
                        });
                    } else {
                        wb = XLSX.read(data, {
                            type : 'binary'
                        });
                    }    

                        //wb.SheetNames[0]是获取Sheets中第一个Sheet的名字

                     //wb.Sheets[Shee名]获取第一个Sheet的数据       

    var property=JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) ); //转成json字符串
                    var url = "QCommunityInfoService.selectFriendsImage"; //方法
                    var param = {};
                    param.property=property;
                    AE.ServiceEx(url, param, function(obj) {
                         if(obj.code==0){
                             f_success_alert();
                         }else{
                             f_fail_alert(obj.text);
                         }
                    });
                
                };
                if (rABS) {
                    reader.readAsArrayBuffer(f);
                } else {
                    reader.readAsBinaryString(f);
                }        
    
            }
            function fixdata(data) { //文件流转BinaryString
                var o = "", l = 0, w = 10240;
                for (; l < data.byteLength / w; ++l)
                    o += String.fromCharCode.apply(null, new Uint8Array(data
                            .slice(l * w, l * w + w)));
                o += String.fromCharCode.apply(null, new Uint8Array(data
                        .slice(l * w)));
                return o;
            }
    public void selectFriendsImage(Map<String, Object> param){
    
            String property=String.valueOf(param.get("property"));
            JSONArray json = JSONArray.fromObject(property);
            for(int i=0;i<json.size();i++){
                    JSONObject job = json.getJSONObject(i);
         
                    QCommunityInfo info=new QCommunityInfo();
    info.setCommunityName(job.
    get("列名").toString());

    communityInfoMapper.insertSelective(info); } }
  • 相关阅读:
    phalcon之视图缓存
    Java NIO框架Netty教程(一) – Hello Netty
    setsockopt的作用
    支持向量机通俗导论(理解SVM的三层境地)
    quartz中的corn表达式(转)
    Applet 数字签名技术全然攻略
    SJTU 3001. 二哥的幸运
    OGRE之跳出漫长的编译等待
    VB.NET 数组的定义 动态使用 多维数组
    【Python】用Python的“结巴”模块进行分词
  • 原文地址:https://www.cnblogs.com/jyy599/p/12066753.html
Copyright © 2011-2022 走看看