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[, ] = "建卡信息";
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为模板的打印的更多相关文章
- C#用 excel 作为模板打印
//打印操作,套打.打印.预览 enum PrintFlag { /// <summary> /// 套打,只打印没 ...
- 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的格式写入 ...
- C# web项目利用docx文档作为模板~为打印专做的解决方案
还是那句话:十年河东,十年河西,莫欺少年穷. 目前,web端打印技术有很多,有收费的专业web打印控件,大家可以参考我的上一篇博客.当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印. w ...
- js导出excel
function inportEx() { $("#btnEx").text("导出中..."); var fugNumber = "";/ ...
- 使用node.js生成excel报表下载(excel-export express篇)
引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...
- node.js之excel文件读取
金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.node.js解析excel, 读取记录. 业务需求,从excel (xlsx, xls)导入数据. 备选 ...
- java动态生成带下拉框的Excel导入模板
在实际开发中,由于业务需要,常常需要进行Excel导入导出操作.以前做一些简单的导入时,先准备一个模板,再进行导入,单有十几. 二十几个导入模板时,往往要做十几.二十几个模板.而且,当在模板中需要有下 ...
- Node.js学习(14)----EJS模板引擎
这个入门教程将从以下几个方面来讲解: 1. 引入EJS 2. 创建一个模板 3. 使用视图工具组件 4. 使用错误处理组件 5. 什么情况下应使用EJS 引入EJS 在我们正式开始前,我们先来做点准备 ...
- angular.js的路由和模板在asp.net mvc 中的使用
angular.js的路由和模板在asp.net mvc 中的使用 我们知道angular.js是基于mvc 的一款优秀js框架,它也有一套自己的路由机制,和asp.net mvc 路由不太一样.as ...
随机推荐
- delphi ,安装插件
一.安装 DevExpress52(VCL+Demo+Help+汉化ini)cxGrid技巧:DBGRIDEH 安装:点击devcl52.exe,安装,安装路径到D:\Program Files\Co ...
- FineReport---过滤条件
1.过滤条件,获取值 该单元格的值 ,是当team为A,content为产量 数据列过滤条件常用处理:nofilter.left.and ,or 2.单元格值等查询条件区域的内容 所选你应该指的就是日 ...
- 如果"一切是IO"“一切是file”是成立的,那么上述的想法也一定可以实现吧 awk对apache日志分析 ---
定时执行 自动化处理 直接入库 再去读取这个file入库: root@VM---ubuntu:/var/log/apache2# awk '{print $1 "\t" $7}' ...
- T-SQL with关键字 with as 递归循环表
)SET @OrgId = N'901205CA-6C22-4EE7-AE4B-96CC7165D07F'; WITH Childs AS ( SELECT * FROM HROrgRelation ...
- 一篇搞定vue-router
由于Vue常见于前后端分离开发场景下,所以页面跳转工作全部交给了前端,所以基于集中管理的原则,就有了vue-router插件,它给定了url和组件之间的跳转规则 Demo准备 vue init web ...
- 标准编译安装(configure make)
./configure --prefix=安装目录 这里注意,安装目录可以自己选择地方,但是自己选择地方的话就要把编译出的bin.include.lib三个文件夹分别加入XXX XXX XXX三个 ...
- appium入门基础知识
1.概念区分: 1)IOS-UIAutomation:随着iOS4.0的发布,苹果公司同时发布了一个名为UIAutomation的测试框架,它可以用来在真实设备和iPhone模拟器上执行自动化测试 学 ...
- python常见模块之collections模块
一.模块简介 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtu ...
- Android ViewGroup onInterceptTouchEvent
public boolean onInterceptTouchEvent (MotionEvent ev) Implement this method to intercept all touch s ...
- linux环境变量配置文件
环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量,如PATH等.当你登陆Linux系统启动一个bash shell时,默认情况下bash会几个文件中查找命令,bash检查的启动文件取决 ...