最新js控制打印機打印文件匯總

字號:

    無論是身處學(xué)校還是步入社會,大家都嘗試過寫作吧,借助寫作也可以提高我們的語言組織能力。范文怎么寫才能發(fā)揮它最大的作用呢?以下是我為大家搜集的優(yōu)質(zhì)范文,僅供參考,一起來看看吧
    js控制打印機打印文件篇一
    做web開發(fā)大家都遇到過打印的問題,對于復(fù)雜的表格打印著實令人頭痛,這片文章介紹一下使用excel打印的解決方法。 首先,如果客戶端調(diào)用excel必須降低ie安全級別,這樣一些非法的控件,如3721什么的都自動安裝了,所以我這樣解決:保持原來的ie設(shè)置,把你的站點添加到信任站點,然后更改安全站點的安全級別,這樣就給你的站點設(shè)置了一個安全通道,而且阻止了3721等的非法入侵,當(dāng)然前提是你要讓你的客戶下載一個注冊表并安裝,我是自己做,自己用,所以我得用戶是我說什么都跟著我做,你們就需要說服客戶了:)。
    好,那么下一步就是如何實現(xiàn)打印了,這里我有非常奪得報表,而且一些非常復(fù)雜,如學(xué)生成績單,需要按照學(xué)年、學(xué)期計算學(xué)分績點,打印照片,學(xué)位授予情況,學(xué)籍處理情況,四六級成績,實習(xí),輔修成績,實踐等,那么我如何把這些信息完整的打印到客戶端就是非常麻煩的了,所有我用excel,先做一個模版,然后調(diào)用模版填充數(shù)據(jù),問題又來了,這么多數(shù)據(jù)怎么組織呢,摸索好長時間,突然有個想法,把數(shù)據(jù)的提取單獨寫一個對象,這樣我的程序就簡潔多了,而且最好的是我任何地方都可以一樣使用它。還說成績單,數(shù)據(jù)非常大,多的要150條數(shù)據(jù),所以我的數(shù)據(jù)源選擇了表格,這樣不必費力的生成什么xml了,顯示的就是我要的數(shù)據(jù)。:它就是我要的數(shù)據(jù)對象了,主要功能是從table中提取數(shù)據(jù)(gettabledata),并提供一個輸出數(shù)據(jù)的方法(getfielddata),這個基本功能可以滿足我多數(shù)的需求。這個我自己寫的一個簡介,怕以后我忘了的:),大家看看有什么不清楚的我補充一下。
    //obj參數(shù)指定數(shù)據(jù)的來源(限定table),默認(rèn)第一行為字段名稱行
    //movenext方法,參數(shù)是表的行向上或向下移動的位數(shù),正數(shù)向下移動,xt(1),.movenext(-1)
    //getfielddata方法獲得當(dāng)前行的指定的列名的數(shù),據(jù)如:.getfielddata("考試成績"):lddata(1):索引
    //sort_desc方法對指定的列按降序排列,_desc("學(xué)年","學(xué)期")
    //sort_asc方法對指定的'列按升序排列,_"考試成績:number"):":"后面的參數(shù)制定改列數(shù)據(jù)類型,此例為數(shù)字
    //getdata方法返回字段值為特定值的數(shù)據(jù)數(shù)組,如果沒有字段值則返回所有該字段記錄.可以在外部進行其他處理,不建議直接處理數(shù)據(jù):a()
    //delete方法刪除當(dāng)前記錄,數(shù)組減少一行,如:.delete
    //updatefield更新當(dāng)前行的指定的索引數(shù)據(jù)(索引如果是數(shù)字,則是列的索引,為字符,是數(shù)據(jù)字段的名稱)如:field("課程號",lddata("原課程號"))
    //movefirst記錄移動到數(shù)據(jù)的第一條記錄,注意數(shù)據(jù)從第二行開始,默認(rèn)第一行為字段名稱行
    //movelast記錄移動到數(shù)據(jù)的最后一條記錄
    //distinct返回所選記錄的不同記錄的條件個數(shù)維數(shù)數(shù)組,同時升序排序
    //初始化,obj:table的名字,leftlen:左面多余數(shù)據(jù)長度,rightlen:右面多余數(shù)據(jù)長度,
    //rows屬性:數(shù)組行數(shù),cols:列數(shù)
    他是打印復(fù)雜excel的腳本,
    var xlbook = ("c:");
    var xlsheet = eets(1)
    這個可是使用網(wǎng)絡(luò)模板,
    var xlbook = ("/printtemplates");
    var xlsheet = eets(1)
    這個力例子中基本把excel打印需要的技術(shù)都展示出來了,如圖片,退出什么的。
    這里要說明的是table的數(shù)據(jù)可以是隱藏的,不顯示也可以取出,這樣就可以增加很多數(shù)據(jù)進來,又不影響界面。
    :這個是清理excel的腳本,當(dāng)結(jié)束excel進程的時候它還沒有推出,清理一下,這個就沒有vs好了:(。
    這個是一個簡單的示例,就是你給他一個表格名字就可以了,然后生成一個表格,就是這樣:makeexcel("table1",true,""),其他參數(shù)可以不要。
    function makeexcel(obj,procevisible,saveasfilename,sorttype,sortfield){
    var mydata= new gettabledata(obj,0,0);
    var myrows=;
    var i,j;
    try {
    var xls = new activexobject ( "ation" );
    }
    catch(e) {
    alert( "要打印該表,您必須安裝excel電子表格軟件,同時瀏覽器須使用“activex 控件”,您的瀏覽器須允許執(zhí)行控件。 請點擊【幫助】了解瀏覽器設(shè)置方法!");
    return "";
    }
    if (typeof(procevisible)=="undefined"){
    e = true;
    }
    else{
    if (procevisible=="true"){
    e = true;
    }
    else
    {
    e = false;
    }
    }
    var xlbook = ;
    var xlsheet = eets(1);
    ;
    formatlocal = "@";
    for (i=0; ;i++){
    for (j=0; ;j++){
    if (typeof(lddata(j)) == "number"){
    (i+1,j+1).numberformatlocal = "0.00_ ";
    }
    (i+1,j+1).value= lddata(j);
    }
    xt();
    }
    if (saveasfilename=="" || typeof(saveasfilename)=="undefined"){
    var fname = easfilename("*.xls", "excel spreadsheets (*.xls), *.xls");
    if (fname!=""){
    (fname);
    }
    }
    else{
    (saveasfilename);
    }
    (savechanges=false);
    //e = false;
    ();
    xls=null;
    //結(jié)束excel進程,退出完成
    erval("cleanup();",1);
    }
    s("content_relate");
    【js控制excel打印解決方案參考】相關(guān)文章:
    1.
    js-打印word的模板程序
    2.
    excel文檔打印技巧
    3.
    excel打印的必備技巧
    4.
    js控制html控件的方法
    5.
    excel表格打印技巧
    6.
    關(guān)于word與excel組合打印信封
    7.
    excel如何打印特定區(qū)域
    8.
    正確打印excel表格