使用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[, ] = "建卡信息";
sheet.Cells[, ] = "患者卡号:";
sheet.Cells[, ] = patientCardNum.Trim();
sheet.Cells[, ] = "患者姓名:";
sheet.Cells[, ] = patientName.Trim();
sheet.Cells[, ] = "金额";
sheet.Cells[, ] = "1元";
sheet.Cells[, ] = "日期";
sheet.Cells[, ] = DateTime.Now.ToString("yyyy-MM-dd");
pExcel.ExecPrint(); return ;
}

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=)
{
StrScript += "xlsheet.printout(1,null,1,false,\"PrintGuid\",false,false);";//这段代码花了我半天时间,因为之前听说javascript不能指定打印机,存疑,后来终于找到正确的用法了
StrScript += "xlApp = null;";
StrScript += "xlsheet = null;}";
StrScript += "</script>";
page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), StrScript);
}
} 示例代码: private void PrintTestButton_Click()
{
string excelPath = "http://"+Request.Url.Host + @"/ExcelDoc/" + "CreateCard.xls";
PrintExcelJs pExcel = new PrintExcelJs(excelPath); pExcel.InsertValueToExcelCell(, , "XX信息");
pExcel.InsertValueToExcelCell(, , "患者卡号:");
pExcel.InsertValueToExcelCell(, , patientCardNum.Trim());
pExcel.InsertValueToExcelCell(, , "患者姓名:");
pExcel.InsertValueToExcelCell(, , patientName.Trim());
pExcel.InsertValueToExcelCell(, , "金额");
pExcel.InsertValueToExcelCell(, , "1元");
pExcel.InsertValueToExcelCell(, , "日期");
pExcel.InsertValueToExcelCell(, , DateTime.Now.ToString("yyyy-MM-dd"));
pExcel.ExecPrint(this,);
}

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

  1. C#用 excel 作为模板打印

    //打印操作,套打.打印.预览        enum PrintFlag        {            /// <summary>            /// 套打,只打印没 ...

  2. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

  3. C# web项目利用docx文档作为模板~为打印专做的解决方案

    还是那句话:十年河东,十年河西,莫欺少年穷. 目前,web端打印技术有很多,有收费的专业web打印控件,大家可以参考我的上一篇博客.当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印. w ...

  4. js导出excel

    function inportEx() { $("#btnEx").text("导出中..."); var fugNumber = "";/ ...

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

    引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...

  6. node.js之excel文件读取

    金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.node.js解析excel, 读取记录. 业务需求,从excel (xlsx, xls)导入数据. 备选 ...

  7. java动态生成带下拉框的Excel导入模板

    在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...

  8. Node.js学习(14)----EJS模板引擎

    这个入门教程将从以下几个方面来讲解: 1. 引入EJS 2. 创建一个模板 3. 使用视图工具组件 4. 使用错误处理组件 5. 什么情况下应使用EJS 引入EJS 在我们正式开始前,我们先来做点准备 ...

  9. angular.js的路由和模板在asp.net mvc 中的使用

    angular.js的路由和模板在asp.net mvc 中的使用 我们知道angular.js是基于mvc 的一款优秀js框架,它也有一套自己的路由机制,和asp.net mvc 路由不太一样.as ...

随机推荐

  1. XMLHttpRequest 对象 status 和statusText 属性对照表

    XMLHttpRequest 对象 status 和statusText 属性对照表 status statusText 说明 0** - 未被始化 1** - 请求收到,继续处理 100 Conti ...

  2. activeMQ安装与测试

    Apache ActiveMQ简介 activeMQ是JMS的一种具体的实现,是最流行的,能力强劲的开源消息总线.activeMQ具有以下优势: 多种语言和协议编写客户端(java.C.C++.AJA ...

  3. Python基础——原生数据类型(字典,列表,元组,字符串)

    字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...

  4. ipad4丢失查找攻略

    如果不幸你的ipad丢失了,你可以通过find my iphone的软件来.它会帮你定位你ipad的位置.还有一种方式是登录你的icloud里面有个功能是查找我的iphone. 你还可以点击下面这个链 ...

  5. CodeForces 156A Message(暴力)

    A. Message time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  6. 巨蟒python全栈开发-第11天 第一类对象 闭包 迭代器

    一.今日主要内容总览(重点) 1.第一类对象->函数名=>变量名 (1)函数对象可以像变量一样进行赋值 (2)还可以作为列表的元素进行使用 (3)还可以作为返回值返回 (4)还可以作为参数 ...

  7. Java 之包

    作用: 对类文件进行分类管理, 类似于文件夹 给类提供多层命名(名称)空间 写在程序的第一行, 包名使用小写 类名的全称是: 包名.类名 包也是一种封装形式 // 示例 package mypack; ...

  8. 海量数据存储之nosql教程(转)

    add by zhj: 不错的系列,作者介绍了NoSQL数据库,并重点研究了Memcached和Redis,不知道后续是否还有其它NoSQL数据库的文章 海量数据存储之nosql教程之-01基础理论 ...

  9. 用Android NDK编译FFmpeg

    附(2018-01-06):     有一个将x264及lame等库集成进去了且基于android的ffmpeg的编译方法,地址参见:       https://github.com/writing ...

  10. python DES3 加密解密

    背景:想给公司的进件流程写一套进件脚本,首先遇到的就是加密解密.公司用的 DES3 + base64 加密解密 一.安装  pycrypto模块,推荐用pycrypto编译文件,直接下载安装就行 ht ...