欧美黑人激情性久久,一本色道久久综合无码人妻,欧美另类人妻制服丝袜,日韩精品一卡2卡3卡4卡新区乱码,欧洲熟妇性色黄在线观看免费,97夜夜澡人人爽人人喊中国片,77se77亚洲欧美在线,久久精品一区二区免费播放

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

                    做web開發(fā)大家都遇到過打印的問題,對(duì)于復(fù)雜的表格打印著實(shí)令人頭痛,這片文章介紹一下使用excel打印的解決方法。 首先,如果客戶端調(diào)用excel必須降低ie安全級(jí)別,這樣一些非法的控件,如3721什么的都自動(dòng)安裝了,所以我這樣解決:保持原來的ie設(shè)置,把你的

                       做web開發(fā)大家都遇到過打印的問題,對(duì)于復(fù)雜的表格打印著實(shí)令人頭痛,這片文章介紹一下使用excel打印的解決方法。

                        首先,如果客戶端調(diào)用excel必須降低ie安全級(jí)別,這樣一些非法的控件,如3721什么的都自動(dòng)安裝了,所以我這樣解決:保持原來的ie設(shè)置,把你的站點(diǎn)添加到信任站點(diǎn),然后更改安全站點(diǎn)的安全級(jí)別,這樣就給你的站點(diǎn)設(shè)置了一個(gè)安全通道,而且阻止了3721等的非法入侵,當(dāng)然前提是你要讓你的客戶下載一個(gè)注冊(cè)表并安裝,我是自己做,自己用,所以我得用戶是我說什么都跟著我做,你們就需要說服客戶了:)。
                     
                        好,那么下一步就是如何實(shí)現(xiàn)打印了,這里我有非常奪得報(bào)表,而且一些非常復(fù)雜,如學(xué)生成績(jī)單,需要按照學(xué)年、學(xué)期計(jì)算學(xué)分績(jī)點(diǎn),打印照片,學(xué)位授予情況,學(xué)籍處理情況,四六級(jí)成績(jī),實(shí)習(xí),輔修成績(jī),實(shí)踐等,那么我如何把這些信息完整的打印到客戶端就是非常麻煩的了,所有我用excel,先做一個(gè)模版,然后調(diào)用模版填充數(shù)據(jù),問題又來了,這么多數(shù)據(jù)怎么組織呢,摸索好長(zhǎng)時(shí)間,突然有個(gè)想法,把數(shù)據(jù)的提取單獨(dú)寫一個(gè)對(duì)象,這樣我的程序就簡(jiǎn)潔多了,而且最好的是我任何地方都可以一樣使用它。還說成績(jī)單,數(shù)據(jù)非常大,多的要150條數(shù)據(jù),所以我的數(shù)據(jù)源選擇了表格,這樣不必費(fèi)力的生成什么xml了,顯示的就是我要的數(shù)據(jù)。ok介紹一下Gettabledata.js:它就是我要的數(shù)據(jù)對(duì)象了,主要功能是從table中提取數(shù)據(jù)(GetTableData),并提供一個(gè)輸出數(shù)據(jù)的方法(getfielddata),這個(gè)基本功能可以滿足我多數(shù)的需求。這個(gè)我自己寫的一個(gè)簡(jiǎn)介,怕以后我忘了的:),大家看看有什么不清楚的我補(bǔ)充一下。

                    //Obj參數(shù)指定數(shù)據(jù)的來源(限定Table),默認(rèn)第一行為字段名稱行
                    //MoveNext方法,參數(shù)是表的行向上或向下移動(dòng)的位數(shù),正數(shù)向下移動(dòng),負(fù)數(shù)向上.如.MoveNext(1),.MoveNext(-1)
                    //GetFieldData方法獲得當(dāng)前行的指定的列名的數(shù),據(jù)如:.GetFieldData(“考試成績(jī)”):列名.GetFieldData(1):索引
                    //Sort_desc方法對(duì)指定的列按降序排列,如.Sort_desc(“學(xué)年”,”學(xué)期”)
                    //Sort_asc方法對(duì)指定的列按升序排列,如.Sort_asc(“考試成績(jī):number”):”:”后面的參數(shù)制定改列數(shù)據(jù)類型,此例為數(shù)字
                    //GetData方法返回字段值為特定值的數(shù)據(jù)數(shù)組,如果沒有字段值則返回所有該字段記錄.可以在外部進(jìn)行其他處理,不建議直接處理數(shù)據(jù):如.GetData()
                    //Delete方法刪除當(dāng)前記錄,數(shù)組減少一行,如:.Delete
                    //updateField更新當(dāng)前行的指定的索引數(shù)據(jù)(索引如果是數(shù)字,則是列的索引,為字符,是數(shù)據(jù)字段的名稱)如:MyData.UpdateField(“課程號(hào)”,MyData.GetFieldData(“原課程號(hào)”))
                    //MoveFirst記錄移動(dòng)到數(shù)據(jù)的第一條記錄,注意數(shù)據(jù)從第二行開始,默認(rèn)第一行為字段名稱行
                    //MoveLast記錄移動(dòng)到數(shù)據(jù)的最后一條記錄
                    //Distinct返回所選記錄的不同記錄的條件個(gè)數(shù)維數(shù)數(shù)組,同時(shí)升序排序
                    //初始化,Obj:table的名字,Leftlen:左面多余數(shù)據(jù)長(zhǎng)度,Rightlen:右面多余數(shù)據(jù)長(zhǎng)度,
                    //rows屬性:數(shù)組行數(shù),cols:列數(shù)

                    在示例代碼中Print_bzcjd.js他是打印復(fù)雜excel的腳本,

                    var xlBook = xls.Workbooks.Open(“c:\\xsxycjb.xls”);
                    var xlsheet = xlBook.Worksheets(1)

                    這個(gè)可是使用網(wǎng)絡(luò)模板,

                    var xlBook = xls.Workbooks.Open(“http://you.com/\PrintTemplates\\xsxycjb.xls“);
                    var xlsheet = xlBook.Worksheets(1)

                    這個(gè)力例子中基本把excel打印需要的技術(shù)都展示出來了,如圖片,退出什么的。

                    這里要說明的是table的數(shù)據(jù)可以是隱藏的,不顯示也可以取出,這樣就可以增加很多數(shù)據(jù)進(jìn)來,又不影響界面。

                    Excel.js:這個(gè)是清理excel的腳本,當(dāng)結(jié)束excel進(jìn)程的時(shí)候它還沒有推出,清理一下,這個(gè)就沒有vs好了:(。

                    這個(gè)是一個(gè)簡(jiǎn)單的示例,就是你給他一個(gè)表格名字就可以了,然后生成一個(gè)表格,就是這樣:MakeExcel(“TABLE1″,true,”1.xls”),其他參數(shù)可以不要。

                    function MakeExcel(Obj,ProceVisible,SaveAsFilename,SortType,SortField){
                    var MyData= new GetTableData(Obj,0,0);
                    var myrows=MyData.rows;
                    var i,j;

                        try {
                          var xls    = new ActiveXObject ( “Excel.Application” );
                         }
                        catch(e) {
                             alert( “要打印該表,您必須安裝Excel電子表格軟件,同時(shí)瀏覽器須使用“ActiveX 控件”,您的瀏覽器須允許執(zhí)行控件。 請(qǐng)點(diǎn)擊【幫助】了解瀏覽器設(shè)置方法!”);
                                  return “”;
                         }
                          if (typeof(ProceVisible)==”undefined”){
                         xls.visible = true;
                         }
                          else{
                             if (ProceVisible==”true”){
                               xls.visible = true;
                               }
                               else
                                {
                                xls.visible = false;
                             }
                           }
                        var xlBook = xls.Workbooks.Add;
                        var xlsheet = xlBook.Worksheets(1);
                        xls.Cells.Select;
                        xls.Selection.NumberFormatLocal = “@”;
                        for (i=0;i<MyData.rows ;i++){
                         for (j=0;j<MyData.cols ;j++){
                           if (typeof(MyData.GetFieldData(j)) == “number”){
                           xlsheet.Cells(i+1,j+1).NumberFormatLocal = “0.00_ “;
                           }
                           xlsheet.Cells(i+1,j+1).Value= MyData.GetFieldData(j);
                         }
                        
                         MyData.MoveNext();
                        }
                       
                         if (SaveAsFilename==”” || typeof(SaveAsFilename)==”undefined”){
                          var fname = xls.Application.GetSaveAsFilename(“*.xls”, “Excel Spreadsheets (*.xls), *.xls”);
                          if (fname!=””){
                          xlBook.SaveAs(fname);
                          }
                         }
                         else{
                         xlBook.SaveAs(SaveAsFilename);
                         }
                        xlBook.Close (savechanges=false);
                        //xls.visible = false;
                        xls.Quit();
                        xls=null;
                        //結(jié)束excel進(jìn)程,退出完成
                        window.setInterval(“Cleanup();”,1);
                       
                    }

                    Javascript教程

                    理解javascript的caller,callee,call,apply概念

                    2006-10-1 6:17:00

                    Javascript教程

                    如何制作浮動(dòng)廣告

                    2006-10-5 17:19:00

                    0 條回復(fù) A文章作者 M管理員
                      暫無討論,說說你的看法吧
                    ?
                    個(gè)人中心
                    購(gòu)物車
                    優(yōu)惠劵
                    有新私信 私信列表
                    搜索
                    主站蜘蛛池模板: 欧美色资源| 国产美女视频免费观看网址| 国产欧美久久久另类精品| 久久久久成人精品无码| 国产va免费精品观看| 中文字幕一区二区三区在线毛片| 国产福利日本一区二区三区| 性人久久久久| 亚欧AV无码乱码在线观看性色| 国产最爽的av片在线观看| 免费特黄夫妻生活片| 国产精品人成视频免费播放| 亚洲人成人网站色www| 色综合热无码热国产| 在线观看亚洲欧美日本| 久久人人爽av亚洲精品天堂| 熟女系列丰满熟妇av| 亚洲丰满老熟女激情av| 国产特级毛片aaaaaa高潮流水| 国产免费久久精品99re丫丫| 精品国产亚洲午夜精品av| 成人无码www在线看免费 | 国产精品中文字幕久久| 97成人碰碰久久人人超级碰oo| 影音先锋AV成人资源站在线播放 | 四虎免费大片aⅴ入口| 色综合 图片区 小说区| 色婷婷欧美在线播放内射| 成人毛片无码一区二区| 高潮潮喷奶水飞溅视频无码| 久久国产精品久久精品国产| 亚洲最大无码中文字幕网站| 无码国模国产在线观看免费| 性荡视频播放在线视频| 免费99精品国产自在现线| 人妻少妇不满足中文字幕| 国产福利无码一区二区在线 | 日韩人妻无码精品系列| 夜色福利站www国产在线视频| 国产成人免费97在线| 国产欧美另类精品久久久|