返回列表 上一主題 發帖

[分享] 獲取excel內容到頁面

[分享] 獲取excel內容到頁面

(前提:你要允許浏覽器訪問本地)
  1. <html>
  2. <head>
  3. <title>Untitled Page</title>
  4. </head>
  5. <script language="javascript" type="text/javascript">
  6. function importXLS(fileName)
  7. {
  8.         objCon = new ActiveXObject("ADODB.Connection");
  9.         objCon.Provider = "Microsoft.Jet.OLEDB.4.0";
  10.         objCon.ConnectionString = "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
  11.         objCon.CursorLocation = 1;
  12.         objCon.Open;
  13.         var strQuery;
  14.         var strSheetName = "Sheet1$";
  15.         var rsTemp = new ActiveXObject("ADODB.Recordset");
  16.         rsTemp = objCon.OpenSchema(20);
  17.         while(!rsTemp.EOF)
  18.         {
  19.                 if (rsTemp("TABLE_TYPE")=="TABLE")
  20.                 {
  21.                         //alert(rsTemp("TABLE_NAME"));
  22.                         rsExcel = new ActiveXObject("ADODB.Recordset");
  23.                         strQuery = "SELECT * FROM [" + rsTemp("TABLE_NAME") + "]";
  24.                         rsExcel.ActiveConnection = objCon;
  25.                         rsExcel.Open(strQuery);
  26.                         mm=rsTemp("TABLE_NAME")+"表内容<br><table  border='1' cellspacing='0' cellpadding='0'>"
  27.                         for(i = 0;i<rsExcel.Fields.Count;++i)
  28.                                 {
  29.                                         mm=mm+"<td>"+rsExcel.Fields(i).name+"</td>";
  30.                                 }
  31.                         while(!rsExcel.EOF)
  32.                         {
  33.                                 mm=mm+"<tr>"
  34.                                 for(i = 0;i<rsExcel.Fields.Count;++i)
  35.                                 {
  36.                                         mm=mm+"<td>"+rsExcel.Fields(i).value+"</td>";
  37.                                 }
  38.                                 mm=mm+"</tr>"
  39.                                 rsExcel.MoveNext;
  40.                         }
  41.                 }
  42.                 document.write(mm+"</table><br>")
  43.                 mm=""
  44.                 rsExcel = null
  45.                 rsTemp.MoveNext;
  46.         }
  47.         objCon.Close;
  48.         objCon =null;
  49.         rsExcel = null;
  50. }
  51. </script>
  52. </head>
  53. <body>
  54. <input type="file" id="f" />
  55. <input type="button" id="b" value="顯示工作簿內容" onClick="if(f.value=='')alert('請選擇xls文件');else importXLS(f.value)" />
  56. </body>
  57. </html>
複製代碼

回復 1# HHAAMM


   
1.gif
2010-10-19 21:47

TOP

謝謝,很不錯,每個工作表內容都抓出來了。
目前還不知道作何使用,下次碰到有損壞文件時試試能不能抓出來。

TOP

前年,單位讓編寫個在內網堥洏峈犖纀腹A突擊了兩個星期的asp後總算是給對付出來了。在學習中感到,多用于客戶端的javascript狠有意思,又因爲喜歡excel,所以試著將兩者結合起來。這個應該沒有什麽實用價值的,編程思路是用ADO訪問數據庫,其實是狠簡單的。

TOP

很好奇,有看到rsTemp = objCon.OpenSchema(20);及objCon.Close;
到底excel有沒有打開?
若損壞了正常無法開啟的文件能否取到數據?

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題