JavaScript控制Excel代碼.doc_第1頁
JavaScript控制Excel代碼.doc_第2頁
JavaScript控制Excel代碼.doc_第3頁
JavaScript控制Excel代碼.doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

JavaScript控制Excel代碼首先,如果客戶端調(diào)用excel必須降低ie安全級別,這樣一些非法的控件,如3721什么的都自動安裝了,所以我這樣解決:保持原來的ie設(shè)置,把你的站點添加到信任站點,然后更改安全站點的安全級別,這樣就給你的站點設(shè)置了一個安全通道,而且阻止了3721等的非法入侵,當然前提是你要讓你的客戶下載一個注冊表并安裝,我是自己做,自己用,所以我得用戶是我說什么都跟著我做,你們就需要說服客戶了:)。好,那么下一步就是如何實現(xiàn)打印了,這里我有非常奪得報表,而且一些非常復(fù)雜,如學生成績單,需要按照學年、學期計算學分績點,打印照片,學位授予情況,學籍處理情況,四六級成績,實習,輔修成績,實踐等,那么我如何把這些信息完整的打印到客戶端就是非常麻煩的了,所有我用excel,先做一個模版,然后調(diào)用模版填充數(shù)據(jù),問題又來了,這么多數(shù)據(jù)怎么組織呢,摸索好長時間,突然有個想法,把數(shù)據(jù)的提取單獨寫一個對象,這樣我的程序就簡潔多了,而且最好的是我任何地方都可以一樣使用它。還說成績單,數(shù)據(jù)非常大,多的要150條數(shù)據(jù),所以我的數(shù)據(jù)源選擇了表格,這樣不必費力的生成什么xml了,顯示的就是我要的數(shù)據(jù)。ok介紹一下Gettabledata.js:它就是我要的數(shù)據(jù)對象了,主要功能是從table中提取數(shù)據(jù)(GetTableData),并提供一個輸出數(shù)據(jù)的方法(getfielddata),這個基本功能可以滿足我多數(shù)的需求。這個我自己寫的一個簡介,怕以后我忘了的:),大家看看有什么不清楚的我補充一下。/Obj參數(shù)指定數(shù)據(jù)的來源(限定Table),默認第一行為字段名稱行/MoveNext方法,參數(shù)是表的行向上或向下移動的位數(shù),正數(shù)向下移動,負數(shù)向上.如.MoveNext(1),.MoveNext(-1)/GetFieldData方法獲得當前行的指定的列名的數(shù),據(jù)如:.GetFieldData(考試成績):列名.GetFieldData(1):索引/Sort_desc方法對指定的列按降序排列,如.Sort_desc(學年,學期)/Sort_asc方法對指定的列按升序排列,如.Sort_asc(考試成績:number):后面的參數(shù)制定改列數(shù)據(jù)類型,此例為數(shù)字/GetData方法返回字段值為特定值的數(shù)據(jù)數(shù)組,如果沒有字段值則返回所有該字段記錄.可以在外部進行其他處理,不建議直接處理數(shù)據(jù):如.GetData()/Delete方法刪除當前記錄,數(shù)組減少一行,如:.Delete/updateField更新當前行的指定的索引數(shù)據(jù)(索引如果是數(shù)字,則是列的索引,為字符,是數(shù)據(jù)字段的名稱)如:MyData.UpdateField(課程號,MyData.GetFieldData(原課程號)/MoveFirst記錄移動到數(shù)據(jù)的第一條記錄,注意數(shù)據(jù)從第二行開始,默認第一行為字段名稱行/MoveLast記錄移動到數(shù)據(jù)的最后一條記錄/Distinct返回所選記錄的不同記錄的條件個數(shù)維數(shù)數(shù)組,同時升序排序/初始化,Obj:table的名字,Leftlen:左面多余數(shù)據(jù)長度,Rightlen:右面多余數(shù)據(jù)長度,/rows屬性:數(shù)組行數(shù),cols:列數(shù)在示例代碼中Print_bzcjd.js他是打印復(fù)雜excel的腳本,1. varxlBook=xls.Workbooks.Open(c:xsxycjb.xls); 2. varxlsheet=xlBook.Worksheets(1)這個可是使用網(wǎng)絡(luò)模板,3. varxlBook=xls.Workbooks.Open(/PrintTemplatesxsxycjb.xls); 4. varxlsheet=xlBook.Worksheets(1)這個力例子中基本把excel打印需要的技術(shù)都展示出來了,如圖片,退出什么的。這里要說明的是table的數(shù)據(jù)可以是隱藏的,不顯示也可以取出,這樣就可以增加很多數(shù)據(jù)進來,又不影響界面。Excel.js:這個是清理excel的腳本,當結(jié)束excel進程的時候它還沒有推出,清理一下,這個就沒有vs好了:(。這個是一個簡單的示例,就是你給他一個表格名字就可以了,然后生成一個表格,就是這樣:MakeExcel(TABLE1,true,1.xls),其他參數(shù)可以不要。5. functionMakeExcel(Obj,ProceVisible,SaveAsFilename,SortType,SortField) 6. varMyData=newGetTableData(Obj,0,0); 7. varmyrows=MyData.rows; 8. vari,j; 9. 10. try 11. varxls=newActiveXObject(Excel.Application); 12. 13. catch(e) 14. alert(要打印該表,您必須安裝Excel電子表格軟件,同時瀏覽器須使用“ActiveX控件”,您的瀏覽器須允許執(zhí)行控件。請點擊【幫助】了解瀏覽器設(shè)置方法!); 15. return; 16. 17. if(typeof(ProceVisible)=undefined) 18. xls.visible=true; 19. 20. else 21. if(ProceVisible=true) 22. xls.visible=true; 23. 24. else25. 26. xls.visible=false; 27. 28. 29. varxlBook=xls.Workbooks.Add; 30. varxlsheet=xlBook.Worksheets(1); 31. xls.Cells.Select; 32. xls.Selection.NumberFormatLocal=; 33. for(i=0;ifor(j=0;jif(typeof(MyData.GetFieldData(j)=number) 34. xlsheet.Cells(i+1,j+1).NumberFormatLocal=0.00_; 35. 36. xlsheet.Cells(i+1,j+1).Value=MyData.GetFieldData(j); 37. 38. 39. MyData.MoveNext(); 40. 41. 42. if(SaveAsFilename=|typeof(SaveAsFilename)=undefined) 43. varfname=xls.Application.GetSaveAsFilename(*.xls,ExcelSpreadsheets(*.xls),*.xls); 44. if(fname!=) 45. xlBook.SaveAs(fname); 46. 47. 48. else 49. xlBook.SaveAs(SaveAsFilename); 50. 51. xl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論