js控制excel列印完美解決方案

2021-08-30 12:42:30 字數 1791 閱讀 3295

js控制excel列印完美解決方案

**:好,那麼下一步就是如何實現列印了,這裡我有非常奪得報表,而且一些非常複雜,如學生成績單,需要按照學年、學期計算學分績點,列印**,學位授予情況,學籍處理情況,四六級成績,實習,輔修成績,實踐等,那麼我如何把這些資訊完整的列印到客戶端就是非常麻煩的了,所有我用excel,先做乙個模版,然後呼叫模版填充資料,問題又來了,這麼多資料怎麼組織呢,摸索好長時間,突然有個想法,把資料的提取單獨寫乙個物件,這樣我的程式就簡潔多了,而且最好的是我任何地方都可以一樣使用它。還說成績單,資料非常大,多的要150條資料,所以我的資料來源選擇了**,這樣不必費力的生成什麼xml了,顯示的就是我要的資料。ok介紹一下gettabledata.js:它就是我要的資料物件了,主要功能是從table中提取資料(gettabledata),並提供乙個輸出資料的方法(getfielddata),這個基本功能可以滿足我多數的需求。這個我自己寫的乙個簡介,怕以後我忘了的:),大家看看有什麼不清楚的我補充一下。

//obj引數指定資料的**(限定table),預設第一行為欄位名稱行

//movenext方法,引數是表的行向上或向下移動的位數,正數向下移動,負數向上.如.movenext(1),.movenext(-1)

//getfielddata方法獲得當前行的指定的列名的數,據如:.getfielddata("考試成績"):列名.getfielddata(1):索引

//sort_desc方法對指定的列按降序排列,如.sort_desc("學年","學期")

//sort_asc方法對指定的列按公升序排列,如.sort_asc("考試成績:number"):":"後面的引數制定改列資料型別,此例為數字

//getdata方法返回字段值為特定值的資料陣列,如果沒有字段值則返回所有該欄位記錄.可以在外部進行其他處理,不建議直接處理資料:如.getdata()

//delete方法刪除當前記錄,陣列減少一行,如:.delete

//updatefield更新當前行的指定的索引資料(索引如果是數字,則是列的索引,為字元,是資料字段的名稱)如:mydata.updatefield("課程號",mydata.getfielddata("原課程號"))

//movefirst記錄移動到資料的第一條記錄,注意資料從第二行開始,預設第一行為欄位名稱行

//movelast記錄移動到資料的最後一條記錄

//distinct返回所選記錄的不同記錄的條件個數維數陣列,同時公升序排序

//初始化,obj:table的名字,leftlen:左面多餘資料長度,rightlen:右面多餘資料長度,

//rows屬性:陣列行數,cols:列數

在示例**中print_bzcjd.js他是列印複雜excel的指令碼,

var xlbook = xls.workbooks.open("c:\\xsxycjb.xls");

var xlsheet = xlbook.worksheets(1)

這個可是使用網路模板,

var xlbook = xls.workbooks.open("");

var xlsheet = xlbook.worksheets(1)

這個力例子中基本把excel列印需要的技術都展示出來了,如,退出什麼的。

這裡要說明的是table的資料可以是隱藏的,不顯示也可以取出,這樣就可以增加很多資料進來,又不影響介面。

excel.js:這個是清理excel的指令碼,當結束excel程序的時候它還沒有推出,清理一下,這個就沒有vs好了:(。

這個是乙個簡單的示例,就是你給他乙個**名字就可以了,然後生成乙個**,就是這樣:makeexcel("table1",true,"1.xls"),其他引數可以不要。

Excel列印控制

列印的時候像word一樣自動分欄,可以用新增輔助表和使用indirect 的辦法實現 假如你的原表是sheet1,新建乙個工作表sheet2,把表頭設定成需要的分欄形式 注意表頭行數要和原表一致,保證第一行資料和原表的行號相同,只是多了幾個列 現在架設你的資料從第2行開始,並且每頁列印5行資料 不含...

js控制列印

列印分頁 page break after always page1 page break after always page2 設定列印 列印本頁 nclick factory.printing.print false 頁面設定 nclick factory.printing.pagesetup ...

js控制列印

列印分頁 page break after always page1 page break after always page2 設定列印 factory style display none viewastext classid clsid 1663ed61 23eb 11d2 b92f 0080...