由 SheetJS 出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。
dist目录下有很多个JS文件,一般情况下用xlsx.core.min.js就够了,xlsx.full.min.js则是包含了所有功能模块。
JavaScript读取和导出excel示例(基于js-xlsx)
http://demo.haoji.me/2017/02/08-js-xlsx/
获取行/列var colcount=wb.Worksheets(1).UsedRange.Cells.Rows.Count
var colcolumn=wb.Worksheets(1).UsedRange.Columns.Count
读取本地Excel文件内容的Javascript代码:
<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_starti<=colcounti++){
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>