首页 新闻 会员 周边

js如何读取本地的excel文件内容

0
悬赏园豆:100 [待解决问题]

现在有一个需求,就是不上传excel文件,直接在js读取excel内容,excel数据是有规律的,excel数据大约最多500条,然后上传内容到服务器。但是目前对于js前端这一块不是很熟,求大神给个指导或者相应的成熟案例

晴空~万里的主页 晴空~万里 | 初学一级 | 园豆:102
提问于:2016-12-01 21:21
< >
分享
所有回答(5)
0

如果一定要用JS读取,可以参考一下文章:

http://stackoverflow.com/questions/9464123/read-excel-data-with-javascript

 

i-shanghai | 园豆:154 (初学一级) | 2016-12-01 21:39
0

请使用 js-xlsx 。。。https://github.com/SheetJS/js-xlsx 

幻天芒 | 园豆:37175 (高人七级) | 2016-12-01 21:59
0


<script type="text/javascript">
function read_excel(){

    var filePath="D:\abcd9.com.xls"; //要读取的xls
    var sheet_id=2; //读取第2个表
    var row_start=3; //从第3行开始读取
    var tempStr='';
    try{
        var oXL = new ActiveXObject("Excel.application"); //创建Excel.Application对象
    }catch(err)
    {
        alert(err);
    }
    var oWB = oXL.Workbooks.open(filePath);
    oWB.worksheets(sheet_id).select();
    var oSheet = oWB.ActiveSheet;
    var colcount=oXL.Worksheets(sheet_id).UsedRange.Cells.Rows.Count ;

    for(var i=row_start;i<=colcount;i++){
        if (typeof(oSheet.Cells(i,8).value)=='date'){ //处理第8列部分单元格内容是日期格式时的读取问题
            d= new Date(oSheet.Cells(i,8).value);
            temp_time=d.getFullYear()+"-"+(d.getMonth() + 1)+"-"+d.getDate();
        }
        else
            temp_time=$.trim(oSheet.Cells(i,7).value.toString());
        tempStr+=($.trim(oSheet.Cells(i,2).value)+" "+$.trim(oSheet.Cells(i,4).value)+" "+$.trim(oSheet.Cells(i,6).value.toString())+" "+temp_time+"\n");
        //读取第2、4、6、8列内容
    }

    return tempStr; //返回
    oXL.Quit();
    CollectGarbage();
}
</script>

daniel-lij | 园豆:202 (菜鸟二级) | 2016-12-01 22:00

var filePath="D:\abcd9.com.xls"; //要读取的xls
应为var filePath="D:\abcd9.com.xls"; 或var filePath="D:/abcd9.com.xls";
另外return应放最后一行;

支持(0) 反对(0) 老余的水壶 | 园豆:200 (初学一级) | 2020-03-26 12:26

var filePath="D:\\abcd9.com.xls";

支持(0) 反对(0) 老余的水壶 | 园豆:200 (初学一级) | 2020-03-26 12:29
0

你的网站打算只支持ie吗?

吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-02 10:49
0

不错啊。简洁明了

shanghaizpy | 园豆:202 (菜鸟二级) | 2018-02-25 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册