- 浏览: 222696 次
- 性别:
- 来自: 魔都
文章分类
最新评论
-
tsinglongwu:
顶,解决了获取Date单元格的内容问题,原来要转换成DateC ...
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
alexyao8:
威武,今天刚遇到这个问题
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
freeren:
...
利用JAVA Bean 反射得到set,get方法 -
pandengzhegt:
我也敬礼!
《Java Annotation 高级应用》 -
yingzhor:
好文! 敬礼!
《Java Annotation 高级应用》
js读取 EXCEL 文件 的实现代码,比较全了大家可以自行测试了。
首页给个有中文说明的例子,下面的例子很多大家可以多测试。
复制代码 代码如下:
复制代码 代码如下:
如果是在网页上打开EXCEL 文件,那么在关闭的时候,进程里还有EXCEL.EXE,所以必须关闭后,刷新本页面!
二、
js读取excel文件
复制代码 代码如下:
三、
我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中
我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。
现在功能已经实现了,具体代码如下
用javascript定义一个函数,循环读取excel文件数据
复制代码 代码如下:
这只是前台的关键代码。
现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!!
一个用JavaScript结合Excel.Application读取本地excel文件并以表格呈现的简单例子
复制代码 代码如下:
js读取 EXCEL 文件 的实现代码,比较全了大家可以自行测试了。
用JS讀取excel的例子
复制代码 代码如下:
首页给个有中文说明的例子,下面的例子很多大家可以多测试。
复制代码 代码如下:
<script language="javascript" type="text/javascript"><!-- function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try{ excelApp = new ActiveXObject("Excel.Application"); excelWorkBook = excelApp.Workbooks.open("C:\\XXX.xls"); excelSheet = oWB.ActiveSheet; //WorkSheets("sheet1") excelSheet.Cells(6,2).value;//cell的值 excelSheet.usedrange.rows.count;//使用的行数 excelWorkBook.Worksheets.count;//得到sheet的个数 excelSheet=null; excelWorkBook.close(); excelApp.Application.Quit(); excelApp=null; }catch(e){ if(excelSheet !=null || excelSheet!=undefined){ excelSheet =nul; } if(excelWorkBook != null || excelWorkBook!=undefined){ excelWorkBook.close(); } if(excelApp != null || excelApp!=undefined){ excelApp.Application.Quit(); excelApp=null; } } // --></script>
复制代码 代码如下:
如果是在网页上打开EXCEL 文件,那么在关闭的时候,进程里还有EXCEL.EXE,所以必须关闭后,刷新本页面!
<script> function ReadExcel() { var tempStr = ""; var filePath= document.all.upfile.value; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try{ for(var i=2;i<46;i++) { if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) break; var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; tempStr+=(" "+oSheet.Cells(i,2).value+ " "+oSheet.Cells(i,3).value+ " "+oSheet.Cells(i,4).value+ " "+oSheet.Cells(i,5).value+ " "+oSheet.Cells(i,6).value+"\n"); } }catch(e) { document.all.txtArea.value = tempStr; } document.all.txtArea.value = tempStr; oXL.Quit(); CollectGarbage(); } </script> <html> <input type="file" id="upfile" /><input type="button" onclick="ReadExcel();" value="read"> <br> <textarea id="txtArea" cols=50 rows=10></textarea> </html>
二、
js读取excel文件
复制代码 代码如下:
<script> function readThis(){ var tempStr = ""; var filePath= document.all.upfile.value; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try{ for(var i=2;i<46;i++){ if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) break; var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; tempStr+=(" "+oSheet.Cells(i,2).value+" "+oSheet.Cells(i,3).value+" "+oSheet.Cells(i,4).value+" "+oSheet.Cells(i,5).value+" "+oSheet.Cells(i,6).value+"\n"); } } catch(e){ //alert(e); document.all.txtArea.value = tempStr; } document.all.txtArea.value = tempStr; oXL.Quit(); CollectGarbage(); } </script> <html> <input type="file" id="upfile" /> <input type="button" onclick="readThis();" value="读取"><br> <textarea id="txtArea" cols=50 rows=10></textarea> </html>
三、
我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中
我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。
现在功能已经实现了,具体代码如下
用javascript定义一个函数,循环读取excel文件数据
复制代码 代码如下:
function readExcel() { try { var ExcelNum=new Array(); //重复导入之前,删除上次导入的同期数据 WebServiceExcel.deleteOldNumber(); var oXL = new ActiveXObject( "Excel.Application "); \\r_c_num[5]的值为excel文件的名字 var path=document.all.excelpath.value+ "\\ "+r_c_num[5] var oWB = oXL.Workbooks.open(path); \\如果excel文件有多个sheet的话从第一个sheet循环读取 for(var x=1;x <=oWB.worksheets.count;x++) { oWB.worksheets(x).select(); var oSheet =oWB.ActiveSheet; \\按指定开始行和开始列读取excel文件的数据 for(var i=parseInt(r_c_num[6]);i <=parseInt(r_c_num[7]);i++) { for(var j=parseInt(r_c_num[8]);j <=parseInt(r_c_num[9]);j++) { if(typeof(oSheet.Cells(i,j).value)== "undefined ") { ExcelNum[j-parseInt(r_c_num[8])+6]= " "; } else { switch_letter(j); ExcelNum[j-parseInt(r_c_num[8])+6]=oSheet.Cells(i,j).value; } } //将读取的一行数据传到后台插入到数据库 WebServiceExcel.insert_From_Excel(ExcelNum); } } } } catch(err) { alert( "出错了, "+err.message); } }
这只是前台的关键代码。
现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!!
一个用JavaScript结合Excel.Application读取本地excel文件并以表格呈现的简单例子
复制代码 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var excelFileName = "E:/project/eomstools/ShowTaskCodeWorkbook/test.xls"; var oWB; function showExcel(targetDIVID){ //objID为表格ID //需要在浏览器安全级别设置中启用ActiveX // Start Excel and get Application object. var oXL=null; try{ oXL = new ActiveXObject("Excel.Application"); }catch(e){ alert(e.message); return ; } if (oXL == null){ alert("创建Excel文件失败,可能是您的计算机上没有正确安装Microsoft Office Excel软件或浏览器的安全级别设置过高!"); return; } try{ // Get a new workbook. oWB = oXL.Workbooks.Open(excelFileName); for (i = 1; i <= oWB.Sheets.Count; i++){ if (oWB.Sheets(i).name.lastIndexOf("月") != -1){ showSheet(i); } } } catch (e){ alert(e.message); } oWB.Close(); //不close工作簿的话,后果还是挺严重的。 oWB = null; oXL = null; } function showSheet(sheetNO){ var oSheet = oWB.Sheets(sheetNO); document.write("<table border=1>"); for (i = 1; i < oSheet.UsedRange.Rows.Count; i++){ document.write("<tr>"); for (j = 1; j < oSheet.UsedRange.Columns.Count; j++){ value = oSheet.Cells(i, j).Value; if (value == undefined){ value = " "; } document.write(i == 1 ? "<th nowrap=true><b>" : "<td>"); document.write(value); document.write(i == 1 ? "</b></th>" : "</td>"); } document.write("</tr>"); } document.write("</table>"); oSheet = null; } //--> </SCRIPT> </HEAD> <BODY onLoad="showExcel();"> </BODY> </HTML>
js读取 EXCEL 文件 的实现代码,比较全了大家可以自行测试了。
用JS讀取excel的例子
复制代码 代码如下:
<% '' '********************************************************* ' 目的:讀取excel資料後插入到數據庫中同時紀錄成功和失敗的數目 ' 傳入: ' 返回: '********************************************************* Function GetExcel() Dim conn Dim StrConn Dim rs Dim Sql file="" Set conn=Server.CreateObject("ADODB.Connection") StrConn="Driver={Microsoft Excel Driver (*.xls)};DBQ="& Server.MapPath("EXCEL_DATA.xls") ''StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dd.xls;Extended Properties=Excel 8.0" conn.Open StrConn Set rs = Server.CreateObject("ADODB.Recordset") Sql="select * from [Sheet1$]" rs.Open Sql,conn,2,2 ''讀取excel中的字段名稱,並檢察字段順序是否正確 for i=0 to rs.Fields.Count-1 FILE_HEAD=FILE_HEAD&rs(i).Name next ''response.write FILE_HEAD IF trim(FILE_HEAD)<>"版本使用單位類綱目節類說明綱說明目說明檔名保存年限共同分類號" THEN RESPONSE.WRITE "<SCRIPT LANGUAGE='JAVASCRIPT'>alert('EXCEL文件字段順序錯誤或字段數不對!!')</SCRIPT>" exit Function END IF ''讀取excel中的資料 do while Not rs.EOF ''將讀取的資料INSERT到oracle數據庫 for i=0 to rs.Fields.Count-1 EDITION=rs(0) FILE_CODE=rs(2)+rs(3)+rs(4)+rs(5) FILE_NAME=rs(9) KIND1_DESC=rs(6) KIND2_DESC=rs(7) KIND3_DESC=rs(8) KIND4_DESC=rs(9) SAVE_YEAR=rs(10) FILE_UNIT=rs(1) COM_FILE_CODE=rs(11) ''============================================== CHECED_SQL="Select nvl(FILE_CASE,'') FILE_CASE FROM ODM67 where EDITION='"&TRIM(EDITION)&"' and FILE_CODE='"&TRIM(FILE_CODE)&"' " If mobjDB.OpenSQL(CHECED_SQL) Then If mobjDB.IsEmpty Then FILE_CASE="0001" CASE_DESC="總案" INS_SQL="" INS_SQL=INS_SQL & " INSERT INTO ODM67(" & VBCRLF INS_SQL=INS_SQL & " EDITION,FILE_CODE,FILE_CASE," & VBCRLF INS_SQL=INS_SQL & " CASE_DESC,CRT_USER,CRT_DATE," & VBCRLF INS_SQL=INS_SQL & " CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF INS_SQL=INS_SQL & " VALUES(" & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(EDITION)&"','"&TRIM(FILE_CODE)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(FILE_CASE)&"','"&TRIM(CASE_DESC)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(TODAY)&"','"&TRIM(NOWTIME)&"')" CALL mobjDB.ExecSQL(INS_SQL) End If End If ''============================================== INS_SQL="" INS_SQL=INS_SQL & " INSERT INTO ODM61( " & VBCRLF INS_SQL=INS_SQL & " EDITION,FILE_CODE,FILE_NAME,KIND1_DESC," & VBCRLF INS_SQL=INS_SQL & " KIND2_DESC,KIND3_DESC,KIND4_DESC,SAVE_YEAR," & VBCRLF INS_SQL=INS_SQL & " FILE_UNIT,COM_FILE_CODE,CRT_USER,CRT_DATE," & VBCRLF INS_SQL=INS_SQL & " CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF INS_SQL=INS_SQL & " VALUES(" & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(EDITION)&"','"&TRIM(FILE_CODE)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(FILE_NAME)&"','"&TRIM(KIND1_DESC)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(KIND2_DESC)&"','"&TRIM(KIND3_DESC)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(KIND4_DESC)&"','"&TRIM(SAVE_YEAR)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(FILE_UNIT)&"','"&TRIM(COM_FILE_CODE)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF INS_SQL=INS_SQL & " '"&TRIM(TODAY)&"','"&TRIM(NOWTIME)&"')" ''RESPONSE.WRITE INS_SQL& "<BR>" IF mobjDB.ExecSQL(INS_SQL) THEN InCount=InCount+1 ELSE NoCount=NoCount+1 file=file&TODAY&" "&NOWTIME&" "&EDITION&" "&FILE_CODE & VBCRLF END IF exit for next rs.MoveNext Loop rs.close set rs=nothing Conn.close set StrConn=nothing if file<>"" then CALL CreateFolder() call SetFile(file) strpath=server.mappath("EXCEL_DATA.xls") call DeleteFolder(strpath) file="" end if End Function '********************************************************* ' 目的: 新建一個指定的文件,如果存在就不新建,並向文件追加紀錄 ' 傳入: file:要追加的數據 ' 返回: '********************************************************* Function SetFile(file) file_path="C:\LOG\OD60err.log" set fstemp=server.CreateObject("Scripting.FileSystemObject") IF (fstemp.FileExists(file_path)) THEN ELSE set filetemp=fstemp.CreateTextFile(file_path,true) filetemp.writeLine "紀錄匯入失敗資料" filetemp.close END IF ''追加失敗資料信息OpenTextFile set filetemp=fstemp.OpenTextFile(file_path,8,true) filetemp.writeLine file filetemp.close set filetemp=Nothing set fstemp=Nothing End Function '********************************************************* ' 目的: 新建一個指定的文件夾,如果存在就不新建 ' 傳入: ' 返回: '********************************************************* Function CreateFolder() Dim fso, f folder="c:\LOG" Set fso = CreateObject("Scripting.FileSystemObject") IF fso.FolderExists(folder) THEN ELSE Set f = fso.CreateFolder(folder) CreateFolderDemo = f.Path END IF End Function '********************************************************* ' 目的:刪除上傳的文件, ' 傳入:傳入上傳文件的虛擬路徑 ' 返回: '********************************************************* Function DeleteFolder(filepath) Dim fso, f folder="EXCEL_DATA.xls" Set fso = CreateObject("Scripting.FileSystemObject") ''response.write fso.FileExists(filepath) IF fso.FileExists(filepath) THEN fso.DeleteFile filepath END IF End Function %> 复制代码 代码如下: <script> function readThis(){ var tempStr = ""; var filePath= document.all.upfile.value; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try{ for(var i=2;i<46;i++){ if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) break; var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; tempStr+=(" "+oSheet.Cells(i,2).value+ " "+oSheet.Cells(i,3).value+ " "+oSheet.Cells(i,4).value+ " "+oSheet.Cells(i,5).value+ " "+oSheet.Cells(i,6).value+"\n"); } }catch(e){ //alert(e); document.all.txtArea.value = tempStr; } document.all.txtArea.value = tempStr; oXL.Quit(); CollectGarbage(); } </script> <html> <input type="file" id="upfile" /><input type="button" onclick="readThis();" value="读取"> <br> <textarea id="txtArea" cols=50 rows=10></textarea> </html>
发表评论
-
【转】细数那些令人发狂的程序语言的特性
2011-12-11 14:41 13381、C语言中的数组 在C/C++中,a[10] 可以写成 10 ... -
网页制作的小技巧
2011-12-08 19:37 858让浏览器在保存页面时失败在页面源文件上增加下面一行代码,保存页 ... -
利用google地图获取位置经纬度坐标
2011-09-08 16:10 2669http://maps.google.cn/maps/ge ... -
调用google地图
2011-09-08 15:21 1460引言:今天一个朋友问我象51job那样的地图怎样实现的,我就网 ... -
【转】JS&&DOM简单实现级联
2010-08-26 13:50 1221首先,在选择工厂的< ... -
关于JS兼容监听attachEvent和addEventListener
2010-08-25 13:29 1997今天学习了一下attachEvent和addEventList ... -
JS Image对象图片类型合法性
2010-08-24 17:48 4176有时候文件名后缀是可以伪装的,比如说将一个记事本文件xx.tx ... -
js 图片 验证 大小 格式 内容(完整)
2010-08-24 17:24 2496<html><head><tit ... -
字符串转换成json的三种方式
2010-08-24 09:50 1159使用ajax的开发项目过程中,经常需要将json格式的字符串返 ... -
JavaScript 验证上传图片(长宽,大小,格式)
2010-07-29 21:42 2917<!DOCTYPE html PUBLIC " ...
相关推荐
以`SheetJS`为例,可以使用以下代码读取Excel文件: ```javascript var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; var workbook = XLSX.read(data, {type: 'binary...
在本文中,我们将深入探讨如何使用js-xlsx来读取Excel文件,以及相关的技术细节。 首先,我们需要理解Excel文件的基本结构。Excel文件通常是基于XML的结构化格式,如`.xlsx`文件实际上是基于ZIP打包的一系列XML文档...
##### 2.1 使用ActiveXObject读取Excel文件 在IE浏览器环境下,可以通过`ActiveXObject`对象来操作Office应用程序,例如Excel。这种方式适用于客户端环境,并且要求用户的浏览器支持ActiveX控件。 ##### 2.2 代码...
然而,在某些特定情况下,如在客户端处理用户上传的Excel文件,我们可能需要实现JavaScript读取Excel文件的功能。下面将详细介绍如何在JavaScript中实现这一功能,以及相关知识点。 1. **使用FileReader API** ...
以下是一个简单的示例代码片段,展示了如何使用FileReader和`js-xls`库读取Excel文件: ```javascript <input type="file" id="excelFile" accept=".xls"> <script src="path/to/js-xls.min.js"> document....
JavaScript(JS)作为前端开发的主要语言,通过特定的技术手段,能够实现对本地Excel文件的读取与解析。本文将深入探讨如何利用JS来读取和解析Excel文件,以及如何进行数据验证,确保上传的数据符合预设的格式要求。...
对于JavaScript读取Excel文件的跨平台解决方案,可以考虑使用像` SheetJS`、`js-xlsx`或`papaparse`这样的库,它们提供了一套API来解析Excel文件,并且支持多种浏览器。 综上所述,JavaScript通过ActiveXObject在IE...
3. **JavaScript接口**:由于Unity WebGL与Web浏览器之间的通信是通过JavaScript接口(JSIL)完成的,你需要创建一个JavaScript文件,暴露一个方法供Unity调用,以实现读取Excel文件的功能。 4. **用户上传文件**:...
本篇文章将详细探讨如何在uniapp中读取Excel文件,特别是xlsx格式的文件内容。 首先,我们需要了解xlsx文件的结构。xlsx是Microsoft Office Excel 2007及更高版本使用的文件格式,基于Open XML标准。它是由一系列...
以下是一个使用ActiveX对象的JavaScript代码示例,它允许在Internet Explorer中打开并读取Excel文件的内容: ```javascript function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try { ...
在读取Excel文件时,我们可能需要先将其转换为ArrayBuffer,然后才能进一步解析。 5. Excel文件格式: Excel文件通常是二进制的,常见的格式有`.xls`(老式BIFF格式)和`.xlsx`(基于Open XML标准)。`.xlsx`文件...
在Web开发中,有时我们...综上所述,通过使用`FileReader API`和前端库如SheetJS,我们可以实现Web端直接读取Excel文件,简化了以往需要服务器端处理的流程。这种方法虽然简单,但需注意其适用范围和潜在的安全问题。
9. **使用示例**:一个简单的使用`js-xlsx`读取Excel文件并显示在HTML表格的示例: ```javascript var reader = new FileReader(); reader.onload = function(e) { var binaryString = e.target.result; var ...
它能够读取Excel文件,并将其内容转换为JSON对象,这对于数据的处理和展示非常方便。通过使用`XLSX.read`方法,我们可以加载二进制文件或者base64编码的字符串,并将它们解析成工作表对象。例如: ```javascript ...
3. **读取Excel文件**:能够快速读取Excel文件中的数据,并将其转换为易于处理的数据格式,如数组或列表等。 4. **跨平台兼容性**:**UNI-Excel插件**经过优化,能够在不同的操作系统和设备上运行,包括Windows、...
4. `demo.jsx`:这是一个示例脚本,可能包含了如何使用`xlsx.extendscript.js`库来读取Excel文件的代码。开发者可以通过阅读和运行这个脚本来学习如何在Photoshop的JSX环境中操作Excel文件。 5. `sheetjs.xlsx`:...
- 代码示例展示了如何在读取Excel文件时进行基本的数据提取和格式化。 通过上述知识点,我们可以了解到,虽然可以使用JavaScript通过ActiveX对象与Excel交互,但这种方法存在兼容性问题,仅适用于IE浏览器,并且...
上述代码是一个基础的操作示例,展示了如何在Node.js中通过node-xlsx模块进行简单的Excel文件读取和写入操作。为了更好地理解和使用这些模块,开发者需要深入阅读各自模块的官方文档,理解其API的细节,以及如何处理...
本文实例讲述了纯JS实现的读取excel文件内容功能。分享给大家供大家参考,具体如下: template.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <...
3. **读取Excel文件**:使用ADO(ActiveX Data Objects)的Recordset对象,可以连接到Excel文件并读取数据。首先,创建一个ADODB.Connection对象连接到Excel文件,然后打开一个ADODB.Recordset对象来获取数据。数据...