js以excel为模板的打印

使用excel为模板打印的好处是格式容易调整,这种方法要求客户端系统配置高度统一,譬如excel安装版本一致,存在服务器上的excel模板必须与客户端excel版本一致,而且不能用其他版本的excel修改。

javascript打印excel代码

<script type="text/javascript" >
    function Print_Click() {
        alert("打印测试");
        var Template = "http://172.16.18.217/ExcelDoc/CreateCard.xls";
        var xlApp = new ActiveXObject("Excel.Application");
        var xlBook = xlApp.Workbooks.add(Template);
        var xlsheet = xlBook.ActiveSheet;
        xlsheet.printout;
        xlApp = null;
        xlsheet = null;

    }
</script>

ASP.NET中后台调用javascript打印excel代码

protected void PrintTestButton_Click(object sender, EventArgs e)
{
    string StrScript;
    StrScript = ("<script type=‘text/javascript‘>");
    StrScript += ("alert(\"打印测试\");");
    StrScript += ("var Template =‘http://172.16.18.217/ExcelDoc/CreateCard.xls‘;");
    StrScript += ("var xlApp = new ActiveXObject(‘Excel.Application‘);");
    StrScript += ("if(xlApp== undefined){");
    StrScript += ("alert(\"Excel对象创建失败\");}else{");
    StrScript += ("var xlBook = xlApp.Workbooks.add(Template);");
    StrScript += ("var xlsheet = xlBook.ActiveSheet;");
    StrScript += ("xlsheet.printout;");
    StrScript += ("xlApp = null;");
    StrScript += ("xlsheet = null;}");
    StrScript += ("</script>");
    this.ClientScript.RegisterStartupScript(this.GetType(), " ", StrScript);
}

C#打印

public int PrintPatientInfo()
{
    PrintExcel pExcel = new PrintExcel("CreateCard.xls");

    Worksheet sheet = pExcel.GetWorksheet();

    sheet.Cells[1, 1] = "建卡信息";
    sheet.Cells[2, 1] = "患者卡号:";
    sheet.Cells[2, 2] = patientCardNum.Trim();
    sheet.Cells[2, 3] = "患者姓名:";
    sheet.Cells[2, 4] = patientName.Trim();
    sheet.Cells[4, 1] = "金额";
    sheet.Cells[4, 2] = "1元";
    sheet.Cells[4, 3] = "日期";
    sheet.Cells[4, 4] = DateTime.Now.ToString("yyyy-MM-dd");
    pExcel.ExecPrint(1);

    return 0;
}

ASP.NET在服务器端用C#组织javascript打印代码并在IE客户端打印,还可以指定打印机,最方便

public class PrintExcelJs
{
    private string excelPath;
    private string StrScript;

    public PrintExcelJs(string xslPath)
    {
        excelPath = xslPath;
        StrScript = "<script type=‘text/javascript‘>";
        StrScript += "var Template =‘"+excelPath+"‘;";
        StrScript += "var xlApp = new ActiveXObject(‘Excel.Application‘);";
        StrScript += "if(xlApp== undefined){";
        StrScript += "alert(\"Excel对象创建失败\");}else{";
        StrScript += "var xlBook = xlApp.Workbooks.add(Template);";
        StrScript += "var xlsheet = xlBook.ActiveSheet;";
    }

    public void InsertValueToExcelCell(int i, int j, string strContent)
    {
        StrScript += "xlsheet.cells(" + i.ToString() + "," + j.ToString() + ")";
        StrScript += "=\"" + strContent + "\";";
    }

    public void ExecPrint(System.Web.UI.Page page,int numOfPrint=1)
    {
        StrScript += "xlsheet.printout(1,null,1,false,\"PrintGuid\",false,false);";//这段代码花了我半天时间,因为之前听说javascript不能指定打印机,存疑,后来终于找到正确的用法了
        StrScript += "xlApp = null;";
        StrScript += "xlsheet = null;}";
        StrScript += "</script>";
        page.ClientScript.RegisterStartupScript(this.GetType(), " ", StrScript);
    }
}

示例代码:

private void PrintTestButton_Click()
{
    string excelPath = "http://"+Request.Url.Host + @"/ExcelDoc/" + "CreateCard.xls";
    PrintExcelJs pExcel = new PrintExcelJs(excelPath);

    pExcel.InsertValueToExcelCell(1, 1, "XX信息");
    pExcel.InsertValueToExcelCell(2, 1, "患者卡号:");
    pExcel.InsertValueToExcelCell(2, 2, patientCardNum.Trim());
    pExcel.InsertValueToExcelCell(2, 3, "患者姓名:");
    pExcel.InsertValueToExcelCell(2, 4, patientName.Trim());
    pExcel.InsertValueToExcelCell(4, 1, "金额");
    pExcel.InsertValueToExcelCell(4, 2, "1元");
    pExcel.InsertValueToExcelCell(4, 3, "日期");
    pExcel.InsertValueToExcelCell(4, 4, DateTime.Now.ToString("yyyy-MM-dd"));
    pExcel.ExecPrint(this,1);
}
时间: 2024-10-13 16:52:43

js以excel为模板的打印的相关文章

Node.js解析Excel

1.使用node-xlsx包 var xlsx = require('node-xlsx'); 只支持xlsx格式 2.解析的Excel文件格式如下: 3.程序如下: var obj = xlsx.parse('D:/test.xlsx'); //第一个工作表的数据 var data = obj.worksheets[0].data; //列数 var maxCol = obj.worksheets[0].maxCol; //行数 var maxRow = obj.worksheets[0].m

java通过POI技术操作Excel(2)----模板读取,录入数据

先来回顾下通常把java对Excel的操作分为以下功能:1.生成模板,导出模板:2.填充模板,录入数据:3:读取数据库数据,导出数据:在上一篇博文中,我简单记录了模板生成和导出,在这篇博文中,主要来记录--Excel文件导入,数据录入(仍然是以jsp+servlet为例) 既然要解决这个问题,那首先来分析下我们需要面对的有哪些需求需要实现: 1.Excel文件导入(这是最基础的,巧妇难为无米之炊,导入环节也是查了好久才完成的); 2.Excel文件中数据的格式判定,你要读取文件,如果文件中其实没

使用Js从Excel复制数据粘贴到页面上

在Excel中选择要复制的区域,“复制”后在剪切板中的Text形式内容是以Tab分隔的.要实现“粘贴”的功能,只需要获取剪切板中文本,然后根据换行“\n”得到每行数据,再将行根据“\t”分割得到对应Cell中的数据,赋值给Td中的Element. 这个过程重点是js如何访问到剪切板的内容. 在IE浏览器中可以直接使用window.clipboardData,函数window.clipboardData.getData('Text') 便可以取到.但是在chrome和firefox中就不行了.网上

使用node.js生成excel报表下载(excel-export express篇)

引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种com组件贴心使用. nodejs作为一门新的语言,报表功能也不是十分完善. (1).js-xlsx : 目前 Github 上 star 数量最多的处理 Excel 的库,支持解析多种格式表格XLSX / XLSM / XLSB / XLS / CSV,解析采用纯js实现,写入需要依赖nodejs

C#对Excel文件模板的完全读取

针对"C#对Excel文件模板的完全读取"这样的一个题目,其实好像描述得不大对.在此再描述下: 如下代码主要是通过对一个Excel模板文件的读取,然后再想模板中填入对应的数据之后,另存为一个新的Excel文件.此文件完全符合原模板要求.(因为原Excel是带有很多样式和公式的,单独只提取原Excel的数值,是很难符合具体工作的需求的.) 源码: 需添加引用:using Excel = Microsoft.Office.Interop.Excel; private void insert

js导出excel

function inportEx() { $("#btnEx").text("导出中..."); var fugNumber = "";//第几次随访 var fugid = "";//随访组Id var fudid = "";//医生id var zTree = $.fn.zTree.getZTreeObj("tree"); var nodes = zTree.getSelected

浏览器端JS导出EXCEL

很多表格业务需要将表格数据导出为Excel,通常使用后台语言java或者php实现数据查询组织Excel文件,提供下载.如果使用客户端JS导出Excel的话,可以减轻服务器端的运算压力,并且能够快速响应. 早期浏览器端导出excel都是借助IE的ActiveX,需要调整浏览器的安全级别,且只能再IE浏览器下使用.我们需要一种跨平台的解决方案. 而Flash具有强大的客户端处理能力,其FileReference类可以从浏览器向本地存储数据.随着Html5的发展,File API也支持浏览器读写本地

CefSharp中实现Chrome中jS导出Excel

[前言] 在博客园闲逛了一年多,平时都是借鉴别人的成功经验,总觉得自己应该分享点什么,但是苦于自己技术有限,平时又不爱写东西,所以一直没有写过任何东西.毕业一年多,在现实工作中遇到各种问题,深切体会到遇到问题时的焦急与纠结.今天决定写自己的第一篇现实中遇到的问题.希望能够为遇到类似问题的博友们提供一些帮助.文章可能写的不好,请勿喷!! [背景] 使用JS将<table>数据以Excel形式已经不是新鲜事情,在IE中常常使用ActiveXObject来创建Excel.application对象来

项目产品化——Excel数据库模板化导入(java)

Excel导入可能是代码开发中比较常见的功能,一个项目如果有多个地方需要excel导入数据库,那么开发的工作量也将比较大,项目产品化过程中,将这么一个类似的功能进行封装合并也是必要的,封装好的代码只需要 使用方法: 第一步进行数据库关于excel的配置 第二步在jsp页面引入excel导入界面即可 拿到excel模板,不需要自己写后台代码,直接在数据库配置excel列与数据库字段的关系,然后在需要excel导入的地方,引入一个连接,即可生成excel导入功能.数据库配置一定要正确 //客户信息批