(A).讀取client端excel(OK),必須指定client電腦完整路徑,例如:c:\\excel\\employee.xlsx
(B).讀取server端excel(不OK),server端網頁,無法讀取server電腦路徑c:\\employee.xlsx,server端網頁所讀取的還是client端上面的excel檔案
(C).讀取跨網域主機excel(OK),必須指定跨網域server電腦完整url,例如:http://tung.tsu.edu.tw/lecture/jquery_phoneGap/excel/employee.xlsx
(A).檔案完整路徑寫法與傳統不同(分隔線為\\),例:c:\\excel\\employee.xlsx
錯誤寫法1::c/excel/employee.xlsx
錯誤寫法2::c\excel\employee.xlsx
(B).若使用Chp 12:HTML5 表單File API元件: <input id="file01" type="file" onchange="show01(this)"/>
*其filename參數只有檔名,沒有路徑path數據的參數,
*
要取得路徑path+filename的方法是:file01.value
(C).讀取跨網域server電腦的excel檔,因為還要等待網路傳輸,會要多等一些時間。
(D).有些電腦的I.E.,因為安全性設定,不允許開啟ActiveXObject物件,所以不能開啟excel,解決辦法是,要自行手動設定,開啟ActiveXObject物件,:
//重要事項: ActiveX 物件可能存在安全性問題。
若要使用 ActiveXObject,您可能需要在 Internet Explorer 中針對相關的安全性區域調整安全性設定。
方法:
打開I.E.,上方功能表:[工具]→[網際網路選項]→[安全性]→[近端內部網路]→[自訂等級]→找[將未標示成安全的 ActiveX 控制項初始化並執行指令碼]:調整按鈕為『啟用』。
(A).將employee.xlsx讀到 excelapp變數
var excelFile = "C:\\excel\\employee.xlsx";
function readExcel()
{
var excelapp =new ActiveXObject("Excel.Application");
excelapp.Workbooks.Open(excelFile);
//....................
excelapp.Application.Quit();
excelapp.Quit();
excelapp = null;
}
//讀取excel員工資料表,第2列,第1欄數據
str = excelapp.Worksheets("員工").Cells(2,1).value+ "<br/>";
document.getElementById("id01").innerHTML=str;
excelobj = new Array();
for(i=0;i<12;i++){
excelobj[i] = new Object();
excelobj[i].id = excelapp.Worksheets("員工").Cells(i+2,1).value;
excelobj[i].name = excelapp.Worksheets("員工").Cells(i+2,2).value;
excelobj[i].englishname = excelapp.Worksheets("員工").Cells(i+2,3).value;
excelobj[i].title = excelapp.Worksheets("員工").Cells(i+2,4).value;
excelobj[i].birthday = excelapp.Worksheets("員工").Cells(i+2,6).value;
excelobj[i].address = excelapp.Worksheets("員工").Cells(i+2,8).value;
excelobj[i].tel = excelapp.Worksheets("員工").Cells(i+2,13).value;
}
(D).輸出成表格
str ="<table border=1><tr><td>" + excelapp.Worksheets('員工').Cells(1,1).value + "</td><td>" + excelapp.Worksheets('員工').Cells(1,2).value + "</td><td>" + excelapp.Worksheets('員工').Cells(1,3).value + "</td><td>" + excelapp.Worksheets('員工').Cells(1,4).value+ "</td><td>" + excelapp.Worksheets('員工').Cells(1,6).value + "</td><td>" + excelapp.Worksheets('員工').Cells(1,8).value + "</td><td>" + excelapp.Worksheets('員工').Cells(1,13).value + "</td></tr>";
for (i=0;i<excelobj.length;i++)
{
str +="<tr><td>";
str += excelobj[i].id;
str +="</td><td>";
str +=excelobj[i].name;
str +="</td><td>";
str += excelobj[i].englishname;
str +="</td><td>";
str += excelobj[i].title;
str +="</td><td>";
str += excelobj[i].birthday
str +="</td><td>";
str += excelobj[i].address;
str +="</td><td>";
str += excelobj[i].tel;
str +="</td></tr>";
}
str +="</table>";
document.getElementById("id01").innerHTML = str;
員工編號 | 姓名 | 英文名 | 職稱 | 稱呼 | 出生日期 | 雇用日期 | 地址 | 城市 | 行政區 | 區域號碼 | 國家地區 | 電話號碼 |
1 | 張瑾雯 | Mary | 業務 | 小姐 | 1968/12/8 | 1992/1/5 | 北市仁愛路二段56號 | 台北市 | 中山 | 98122 | (02) 2555-9857 | |
2 | 陳季暄 | Bradley | 業務經理 | 先生 | 1952/2/19 | 1992/8/14 | 北市敦化南路一段1號 | 台北市 | 大同 | 98401 | (02) 2555-9482 | |
3 | 趙飛燕 | Kim | 業務 | 小姐 | 1963/8/30 | 1992/4/1 | 北市忠孝東路四段4 號 | 台北市 | 松山 | 98033 | (02) 2555-3412 | |
4 | 林美麗 | Chris | 業務 | 小姐 | 1958/9/19 | 1993/5/3 | 北市南京東路三段3號 | 台北市 | 景美 | 98052 | (02) 2555-8122 | |
5 | 劉天王 | Mike | 業務經理 | 先生 | 1955/3/4 | ######## | 北市北平東路24號 | 台北市 | 松山 | 98552 | (02) 2555-4848 | |
6 | 黎國明 | Bill | 業務 | 先生 | 1963/7/2 | ######## | 北市中山北路六段88號 | 台北市 | 中山 | 15524 | (02) 2555-7773 | |
7 | 郭國臹 | Steven | 業務 | 先生 | 1960/5/29 | 1994/1/2 | 北市師大路67號 | 台北市 | 大同 | 55555 | (02) 2555-5598 | |
8 | 蘇涵蘊 | Maggie | 業務主管 | 小姐 | 1958/1/9 | 1994/3/5 | 北市紹興南路99號 | 台北市 | 信義 | 88888 | (02) 2555-1189 | |
9 | 孟庭亭 | Linda | 業務 | 小姐 | 1969/7/2 | ######## | 北市信義路二段120號 | 台北市 | 大同 | 33333 | (02) 2555-4444 | |
12 | 賴俊良 | Eddie | 資深工程師 | 先生 | 1972/12/6 | 1995/12/6 | 北市北平東路24 號3 樓之一 | 台北市 | 信義 | 11112 | 3224932 | |
13 | 何大樓 | David | 助手 | 先生 | 1961/12/6 | 1993/12/6 | 北市北平東路24 號3 樓之一 | 台北市 | 景美 | 53432 | 3224932 | |
14 | 王大德 | John | 工程師 | 先生 | ######## | ######## | 北市北平東路24 號3 樓之一 | 台北市 | 內湖 | 53432 | 3224931 |