client端,開啟c:\\excel\\employee.xlsx,讀取員工編號,姓名,住址
(下載employee.xlsx到c:\\excel\\employee.xlsx) ( 限用I.E.瀏覽器,才能顯示)


 

 


1.注意:

注意:HTML5的File API元件,filename參數只有檔名,沒有路徑path數據的參數,要取得路徑path+filename的方法是:file01.value(用File API元件的取得值)

雖然ActiveXObject物件路徑寫法分隔線為\\,例:c:\\excel\\employee.xlsx,但是使用File API的file01.value,還是可以讀到資料

1.重要觀念:
(1).若要讀取excel檔案,必需在I.E.瀏覽器才能讀取(使用chrome, opera都不行,因為只有同是微軟的產品,才能讀取)

(2).讀取的方式,可以用三種方法,任一種都可以

(A).client端,必須指定client電腦完整路徑,例如:c:\\excel\\employee.xlsx
(B).server端,必須指定server電腦完整路徑,例如:c:\\excel\\employee.xlsx
(C).跨網域主機,必須指定跨網域server電腦完整url,例如:http://tung.tsu.edu.tw/lecture/jquery_phoneGap/excel/employee.xlsx

2.容易發生的錯誤,與注意事項:

(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 控制項初始化並執行指令碼]:調整按鈕為『啟用』。

3.讀取excel的方法與步驟:

(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;

}

(B).從excelapp變數取出數值

//讀取excel員工資料表,第2列,第1欄數據
str = excelapp.Worksheets("員工").Cells(2,1).value+ "<br/>";

document.getElementById("id01").innerHTML=str;

(C).從excelapp變數, 轉換成物件陣列excelobj

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;
}

4.employee.xlsx員工資料表內容

員工編號 姓名 英文名 職稱 稱呼 出生日期 雇用日期 地址 城市 行政區 區域號碼 國家地區 電話號碼
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