无码人妻丰满熟妇区bbbbxxxx,国产亚洲精品一区二区三区,免费国产黄网站在线观看可以下载 http://m.mxio.cn 傳播先進設計理念 推動原創(chuàng)設計發(fā)展 Thu, 05 Oct 2006 17:14:00 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.9.4 js控制excel打印完美解決方案 http://m.mxio.cn/10063.html http://m.mxio.cn/10063.html#respond Thu, 05 Oct 2006 17:14:00 +0000    做web開發(fā)大家都遇到過打印的問題,對于復雜的表格打印著實令人頭痛,這片文章介紹一下使用excel打印的解決方法。

    首先,如果客戶端調(diào)用excel必須降低ie安全級別,這樣一些非法的控件,如3721什么的都自動安裝了,所以我這樣解決:保持原來的ie設置,把你的站點添加到信任站點,然后更改安全站點的安全級別,這樣就給你的站點設置了一個安全通道,而且阻止了3721等的非法入侵,當然前提是你要讓你的客戶下載一個注冊表并安裝,我是自己做,自己用,所以我得用戶是我說什么都跟著我做,你們就需要說服客戶了:)。
 
    好,那么下一步就是如何實現(xiàn)打印了,這里我有非常奪得報表,而且一些非常復雜,如學生成績單,需要按照學年、學期計算學分績點,打印照片,學位授予情況,學籍處理情況,四六級成績,實習,輔修成績,實踐等,那么我如何把這些信息完整的打印到客戶端就是非常麻煩的了,所有我用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他是打印復雜excel的腳本,

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

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

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

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

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

Excel.js:這個是清理excel的腳本,當結(jié)束excel進程的時候它還沒有推出,清理一下,這個就沒有vs好了:(。

這個是一個簡單的示例,就是你給他一個表格名字就可以了,然后生成一個表格,就是這樣: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電子表格軟件,同時瀏覽器須使用“ActiveX 控件”,您的瀏覽器須允許執(zhí)行控件。 請點擊【幫助】了解瀏覽器設置方法!”);
              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進程,退出完成
    window.setInterval(“Cleanup();”,1);
   
}

]]>
http://m.mxio.cn/10063.html/feed 0
主站蜘蛛池模板: 亚洲老妇色熟女老太| 黄色A级国产免费大片视频| 最新中文字幕av无码不卡| 色天使亚洲综合一区二区| 精品国产成人国产在线视| 国产成人一区二区青青草原 | 久久国产精品二国产精品| 4455永久免费视频| 亚洲欧美色中文字幕| 久久亚洲精品中文字幕波多野结衣| 日本55丰满熟妇厨房伦| 亚洲精品无码成人a片在线软件| 国精品91人妻无码一区二区三区| 亚洲国产中文曰韩丝袜| 日韩精品二区三区四区| 国产人成视频在线视频| 九色精品国产成人综合网站| 色欲国产精品一区成人精品| 国产精品无码专区第一页| 国语精品一区二区三区| 欧美XXXX黑人又粗又长精品| 日本又黄又爽又无遮挡的视频| 国产肉丝袜在线观看| 中文字幕大香视频蕉免费| 国产精品久久自在自线| 深夜视频国产在线观看| 日本高清在线一区二区三区| 在线成人爽a毛片免费软件| 国产精品自在拍首页视频8| 欧美熟妇丰满肥白大屁股免费视频| 亚洲欧美va在线播放| 四虎成人在线观看免费| 波多野结衣乳喷高潮视频| 成·人免费午夜视频| 成在人线av无码免费高潮喷水| 国产精品丝袜综合区旗袍| 日本国产精品第一页久久 | 亚洲国产精品久久久久秋霞| 亚洲精品无码专区在线| 亚洲综合图片区自拍区| 国产区免费精品视频|