使用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自定义上拉控件SpringView

    Demo 先看一下SpringView的效果图: 1.拖动灰色部分可拖动下方视图,点击jump按钮可让下方视图自行滑动. 使用方法 布局文件: <com.zql.android.springvi ...

  2. The OpenCV Coding Style Guide

    https://github.com/opencv/opencv/wiki/Coding_Style_Guide

  3. 关于jQuery中nth-child和nth-of-type的详解

    首先贴出来HTML的代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. tpot从elastic search拉攻击数据之三 用于拉取的java程序

    package download; import org.json.JSONArray; import java.io.*; import java.net.URL; import java.net. ...

  5. pandas数据结构和介绍第一天

    pandans另种主要的数据结构Series和DateFranme 1,Series 仅由一组数据就而已产生简单的Series 2)Series 有index和values属性,表达索引对象 3)设置 ...

  6. socketserver模块、MySQL(数据库、数据表的操作)

    一.socketserver实现并发 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环. socketserver模块中分两大类:server类(解决链接问题)和request类(解决 ...

  7. 000 初步使用Kotlin开发Android应用

    Kotlin是Jetbrians公司开发的一款编程语言,基于jvm兼容Java. 要求 IDE:IDEA或者Android Studio(简称studio)对Kotlin语言有所了解,官方文档:htt ...

  8. springcloud 开发时快速剔除无用服务

    注册中心配置: # 关闭保护机制 eureka.server.enable-self-preservation=false #剔除失效服务间隔 eureka.server.eviction-inter ...

  9. Redis五(其他操作命令)

    其他常用操作 delete(*names) # 根据删除redis中的任意数据类型 exists(name) # 检测redis的name是否存在 keys(pattern='*') # 根据模型获取 ...

  10. python 2.7.11安装pywin32过程中 停止工作问题

    问题描述 由于需要安装pywin32,官网下载了pywin32-220.win32-py2.7.exe.注意:你的pywin32是32位还是64位取决于你的python,而不是你的电脑.CMD上可以查 ...