使用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. Android 生成keystore,两种方式

    一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android T ...

  2. ubuntu搭建java web环境

    java web环境即jdk+tomcat+mysql jdk:http://www.oracle.com/technetwork/java/javase/downloads/index.html t ...

  3. Linux网络配置:设置IP地址、网关DNS、主机名

    查看网络信息 1.ifconfig eth0 2.ifconfig -a 3.ip add 设置主机名需改配置文件: /etc/hosts /etc/sysconfig/network vim /et ...

  4. 使用ServiceStack缓存技术

    ServiceStack 是一个高性能的 .NET Web 服务框架,简化了开发 XML.JSON.JSV 和 WCP SOAP Web 服务.它定义了符合 Martin Fowlers 数据传输对象 ...

  5. jquery slibings选取同级其他元素

    jquery选取同级其他元素可以使用slibings方法,end方法可以清除之前的链式操作,相当于重新开始. <script type="text/javascript"&g ...

  6. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  7. ubuntu14 编译安装(升级)g++

    编译安装(升级)g++ ubuntu14自带的g++为4.8.4,不支持c++11.现要将g++升至5.2.0 1.下载安装: 参考https://www.cppfans.org/1719.html ...

  8. pandas删除包含指定内容的行

    Outline 处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉. 例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据 ...

  9. 001-ant design pro安装、目录结构、项目加载启动【原始、以及idea开发】

    一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...

  10. python中的闭包是什么

    当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包,其意义就是会记录这个值 def A(x): def B(): print(x) return B A(7)() #7