//---WPS-----

using EtApp = ET;

using System.Reflection;

using System.Runtime.InteropServices;

using System.Configuration;

//--Excel--------

using EtAppExcel = Microsoft.Office.Interop.Excel;

namespace LensMaterialPowerCenter.Dorm

{

    public
partial class frmDormAllotRoomReportInfo : Office2007Form

    {

//--------WPS------

       
string strProduct = string.Empty;

       
EtApp.Application objApp = null; //实例WPS Excel类

EtAppExcel.Application objAppExcel = null; //实例Office
Excel类

}

}

//打印两联模板

       
#region

       
private void btnTwoPrint_Click(object sender, EventArgs e)

       
{

           
try

           
{

               
if (dtStaff.Rows.Count == 0)

               
{

                   
MessageBox.Show("请先选择打印数据记录,请确认!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Warning);

                   
return;

               
}

OpenExcelTwoFile();

}

           
catch { }

       
}

       
public void OpenExcelTwoFile() 
//打开Excel文件 

       
{

           
try

           
{

               
System.Windows.Forms.OpenFileDialog sfd = new OpenFileDialog();

sfd.DefaultExt = "*.xls";

sfd.Filter = "Any File(*.xls)|*.xls|(*.et)|*.et";

if (sfd.ShowDialog() == DialogResult.OK)

               
{

                   
//OperateTwo(sfd.FileName);

OperateTwo_Page(sfd.FileName); //---------mark by zl for 测试两联纸
2013-05-20----------

               
}

           
}

           
catch { }

}

       
private void OperateTwo(string pFileName)

       
{

           
try

           
{

               
//打开一个WPS Excel应用

               
objApp = new EtApp.Application();

               
objApp.DisplayAlerts = false;//DisplayAlerts 属性设置成
False,就不会出现这种警告。

               
objApp.Visible = false;

if (objApp == null)

               
{

                   
throw new Exception("打开 WPS Excel应用时发生错误!");

               
}

               
EtApp.Workbooks wbs = objApp.Workbooks;

               
//打开一个现有的工作薄

               
EtApp._Workbook wb = wbs.Add(pFileName);

               
EtApp.Sheets shs = wb.Sheets;

               
//选择第一个Sheet页

               
EtApp._Worksheet sh = (EtApp._Worksheet)shs.get_Item(1);

string[] str = null;

               
int page = 0;

               
if (dtStaff.Rows.Count % 2 == 0)

               
{

                   
page = dtStaff.Rows.Count / 2;

               
}

               
else

               
{

                   
page = dtStaff.Rows.Count / 2 + 1;

               
}

               
for (int i = 0; i < page; i++)

               
{

                   
sh.Cells[2, 1] = "";

                   
sh.Cells[2, 2] = "";

                   
sh.Cells[2, 3] = "";

                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                   
sh.Cells[2, 4] = "";

                   
sh.Cells[2, 5] = "";

                   
sh.Cells[2, 6] = "";

sh.Cells[6, 1] = "";

                   
sh.Cells[6, 2] = "";

                   
sh.Cells[6, 3] = "";

                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                   
sh.Cells[6, 4] = "";

                   
sh.Cells[6, 5] = "";

                   
sh.Cells[6, 6] = "";

for (int j = i * 2; j < (i * 2) + 2; j++)

                   
{

                       
if (j < dtStaff.Rows.Count)

                       
{

                           
str = new string[6];

                           
str[0] = dtStaff.Rows[j][0].ToString().Trim(); 
//姓名

                           
str[1] = "'" + dtStaff.Rows[j][1].ToString().Trim(); //身份证号

                           
str[2] = dtStaff.Rows[j][2].ToString().Trim(); //性别

                           
str[3] = dtStaff.Rows[j][3].ToString().Trim(); 
//宿舍区

                           
str[4] = dtStaff.Rows[j][4].ToString().Trim(); //房号

                           
str[5] = dtStaff.Rows[j][5].ToString().Trim(); //床号

switch ((j + 1) % 2)

                           
{

                               
case 1:

                                   
sh.Cells[2, 1] = str[0];

                                   
sh.Cells[2, 2] = str[1];

                                   
sh.Cells[2, 3] = str[2];

                                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                                   
sh.Cells[2, 4] = str[3];

                                   
sh.Cells[2, 5] = str[4];

                                   
sh.Cells[2, 6] = str[5];

                                   
sh.Cells[3, 9] =
System.DateTime.Now.Date.ToString("yyyy年MM月dd日");

                                   
break;

case 0:

                                   
sh.Cells[7, 1] = str[0];

                                   
sh.Cells[7, 2] = str[1];

                                   
sh.Cells[7, 3] = str[2];

                                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                                   
sh.Cells[7, 4] = str[3];

                                   
sh.Cells[7, 5] = str[4];

                                   
sh.Cells[7, 6] = str[5];

                                   
sh.Cells[8, 9] =
System.DateTime.Now.Date.ToString("yyyy年MM月dd日");

                                   
break;

                           
}

                       
}

                   
}

                   
objApp.Visible = true;

                   
objApp.UserControl = true;

objApp.Visible = true;

                   
objApp.UserControl = true;

///

                   
///打印

                   
///

                   
//wb.PrintPreview(false);

                   
sh.PrintPreview(false);

                   
object oMissing = System.Reflection.Missing.Value;

wb.PrintOut(1, 1, oMissing, oMissing, oMissing, false, false,
oMissing, false, 1, 1, 12124, 12464,

                      
false, ET.ETPaperTray.etPrinterAutomaticSheetFeed, false,
ET.ETPaperOrder.etPrinterOverThenDown);

               
}

               
wb.Close(false, null, null);  //退出工作薄

               
objApp.Quit();  //退出wps

               
System.GC.Collect();

           
}

           
catch (Exception theException)

           
{

               
String errorMessage;

               
errorMessage = "Error: ";

               
errorMessage = String.Concat(errorMessage,
theException.Message);

               
errorMessage = String.Concat(errorMessage, " Line: ");

               
errorMessage = String.Concat(errorMessage,
theException.Source);

MessageBox.Show(errorMessage, "Error");

           
}

}

#region

       
private void OperateTwo_Page(string pFileName)

       
{

           
try

           
{

               
//打开一个Office Excel应用

               
objAppExcel = new EtAppExcel.Application();

               
objAppExcel.DisplayAlerts = false;//DisplayAlerts 属性设置成
False,就不会出现这种警告。

               
objAppExcel.Visible = false;

if (objAppExcel == null)

               
{

                   
throw new Exception("打开 Office Excel应用时发生错误!");

               
}

               
EtAppExcel.Workbooks wbs = objAppExcel.Workbooks;

               
//打开一个现有的工作薄

               
EtAppExcel._Workbook wb = wbs.Add(pFileName);

               
EtAppExcel.Sheets shs = wb.Sheets;

               
//选择第一个Sheet页

               
EtAppExcel._Worksheet sh =
(EtAppExcel._Worksheet)shs.get_Item(1);

string[] str = null;

               
int page = 0;

               
if (dtStaff.Rows.Count % 2 == 0)

               
{

                   
page = dtStaff.Rows.Count / 2;

               
}

               
else

               
{

                   
page = dtStaff.Rows.Count / 2 + 1;

               
}

               
for (int i = 0; i < page; i++)

               
{

                   
sh.Cells[2, 1] = "";

                   
sh.Cells[2, 2] = "";

                   
sh.Cells[2, 3] = "";

                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                   
sh.Cells[2, 4] = "";

                   
sh.Cells[2, 5] = "";

                   
sh.Cells[2, 6] = "";

sh.Cells[6, 1] = "";

                   
sh.Cells[6, 2] = "";

                   
sh.Cells[6, 3] = "";

                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                   
sh.Cells[6, 4] = "";

                   
sh.Cells[6, 5] = "";

                   
sh.Cells[6, 6] = "";

for (int j = i * 2; j < (i * 2) + 2; j++)

                   
{

                       
if (j < dtStaff.Rows.Count)

                       
{

                           
str = new string[6];

                           
str[0] = dtStaff.Rows[j][0].ToString().Trim(); 
//姓名

                           
str[1] = "'" + dtStaff.Rows[j][1].ToString().Trim(); //身份证号

                           
str[2] = dtStaff.Rows[j][2].ToString().Trim(); //性别

                           
str[3] = dtStaff.Rows[j][3].ToString().Trim(); 
//宿舍区

                           
str[4] = dtStaff.Rows[j][4].ToString().Trim(); //房号

                           
str[5] = dtStaff.Rows[j][5].ToString().Trim(); //床号

switch ((j + 1) % 2)

                           
{

                               
case 1:

                                   
sh.Cells[2, 1] = str[0];

                                   
sh.Cells[2, 2] = str[1];

                                   
sh.Cells[2, 3] = str[2];

                                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                                   
sh.Cells[2, 4] = str[3];

                                   
sh.Cells[2, 5] = str[4];

                                   
sh.Cells[2, 6] = str[5];

                                   
sh.Cells[3, 9] =
System.DateTime.Now.Date.ToString("yyyy年MM月dd日");

                                   
break;

case 0:

                                   
sh.Cells[7, 1] = str[0];

                                   
sh.Cells[7, 2] = str[1];

                                   
sh.Cells[7, 3] = str[2];

                                   
//sh.Cells[2, 16] = DateTime.Now.Date;

                                   
sh.Cells[7, 4] = str[3];

                                   
sh.Cells[7, 5] = str[4];

                                   
sh.Cells[7, 6] = str[5];

                                   
sh.Cells[8, 9] =
System.DateTime.Now.Date.ToString("yyyy年MM月dd日");

                                   
break;

                           
}

                       
}

                   
}

                   
objAppExcel.Visible = true;

                   
objAppExcel.UserControl = true;

objAppExcel.Visible = true;

                   
objAppExcel.UserControl = true;

///

                   
///打印

                   
///

                   
//wb.PrintPreview(false);

                   
sh.PrintPreview(false);

                   
object oMissing = System.Reflection.Missing.Value;

//wb.PrintOut(1, 1, oMissing, oMissing, oMissing, false, false,
oMissing, false, 1, 1, 12124, 12464,

                   
//   false,
ET.ETPaperTray.etPrinterAutomaticSheetFeed, false,
ET.ETPaperOrder.etPrinterOverThenDown);

                   
wb._PrintOut(1, 1, oMissing, false, oMissing, oMissing,
oMissing);

               
}

               
wb.Close(false, null, null);  //退出工作薄

               
objAppExcel.Quit();  //退出wps

               
System.GC.Collect();

           
}

           
catch (Exception theException)

           
{

               
String errorMessage;

               
errorMessage = "Error: ";

               
errorMessage = String.Concat(errorMessage,
theException.Message);

               
errorMessage = String.Concat(errorMessage, " Line: ");

               
errorMessage = String.Concat(errorMessage,
theException.Source);

MessageBox.Show(errorMessage, "Error");

           
}

}

       
#endregion

       
#endregion

C#模板打印功能-模板为WPS或Excel的更多相关文章

  1. vue-element-admin实现模板打印

    一.简介 模板打印也叫”套打“,是业务系统和后台管理系统中的常用功能,B/S系统中实现”套打“比较繁琐,所以很多的B/S系统中的打印功能一直使用的是浏览器打印,很少实现模板打印.本篇将介绍在Vue E ...

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

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

  3. 关于opencv模板匹配功能的项目测试记录

    模板匹配功能介绍的很好的一篇博客:https://www.cnblogs.com/XJT2018/p/9934139.html 就如上述博客所言:“若原图像中的匹配目标发生旋转或大小变化,该算法无效. ...

  4. C#微信接口之推送模板消息功能示例

    本文实例讲述了C#微信接口之推送模板消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...

  5. C++模板常用功能讲解

    前言 泛型编程是C++继面向对象编程之后的又一个重点,是为了编写与具体类型无关的代码.而模板是泛型编程的基础.模板简单来理解,可以看作是用宏来实现的,事实上确实有人用宏来实现了模板类似的功能.模板,也 ...

  6. 按照已有的模板打印小票<二> ——调用windows打印机打印 可设置字体样式

    按照已有的模板打印小票<二> ——调用windows打印机打印 可设置字体样式 之前写过一篇文章<按照已有的模板输出一(如发票)>,是关于如何给已有的模板赋值.在项目的实践过程 ...

  7. Printing tools 自定义模板打印的实现

    #ArcGIS for Server 自定义打印两种方法 友好阅读版本: http://gishub.info/2013/09/17/printingtools/ ## 前言使用web打印会遇到中文乱 ...

  8. ThinkPHP模板包含功能(转载)

    对于一些有共同属性的页面(如页脚),可以单独制作成一个模板,再利用 ThinkPHP 提供的模板包含功能包含进来.这样,当要修改这些公共页面时,只需修改对应的模板即可而不必修改每一个页面.模板的包含使 ...

  9. count_if 功能模板

    count_if 功能模板 template <class InputIterator, class UnaryPredicate> typename iterator_traits< ...

随机推荐

  1. MyEclipse从数据库表反向生成实体类之Hibernate方式(反向工程)

    一.打开Myeclipse Database Explorer 二.新建[New..] 三.选择数据库,添加驱动 四.测试连接 五.选中数据库中的表单击右键选择[Hibernate Rever..] ...

  2. Lucene.net入门学习系列(2)

    Lucene.net入门学习系列(2) Lucene.net入门学习系列(1)-分词 Lucene.net入门学习系列(2)-创建索引 Lucene.net入门学习系列(3)-全文检索 在使用Luce ...

  3. Android ListView中添加不同的多种布局

    最近做项目要使用ListView加载不同的布局,由于自己写的代码不能贴出,故找了一篇自认为比较好的blog给分享出来,希望对用到此项技术的同学有点帮助. http://logc.at/2011/10/ ...

  4. iOS 测试驱动开发

    测试驱动开发是敏捷开发的一部分,它一般有“red-green- refactor”步骤 iOS测试驱动开发的工具 一. OCUnit 是Xcode自带的测试工具 其使用步骤分为 1 建立测试的Targ ...

  5. nginx反射理传apache配置 - cookie去哪儿了?

    在公司接手了个微信项目,由于微信环境下访问网站需要使用对外开放的域名,所以有相关问题,都是直接运维同事帮忙处理. 原理是这样: 方案一: 1. 将域名解析指向测试服务器的地址: 2. 开放相关端口访问 ...

  6. 基本的SQL语句

    一些常用的SQL语句大全参考:http://www.cnblogs.com/acpe/p/4970765.html 这篇博文整理的比较全,我摘抄一些基本常用的. 创建数据库 CREATE DATABA ...

  7. 关于CachedRowSetImpl类

    全称: com.sun.rowset.CachedRowSetImpl 父类: javax.sql.rowset.BaseRowSet 实现的接口: javax.sql.RowSet javax.sq ...

  8. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  9. 解决 jQuery.UI.Resizable aspectRatio在init后无法重新设置

    一.背景  在jQuery1.9.x版本之前,存在aspectRatio在Resizable方法init之后,无法再次修改aspectRatio的boolean值. 二.解决方案 // 用于fix j ...

  10. app外包开发注意事项大全『最新』

    随着移动互联网的高速发展,很多互联网创业公司或传统向互联网转型的公司都急需发开一款app软件,多数公司会选择让外包公司来开发.问题来了,App外包市场鱼龙混杂,我们要如何在这里面选择一个靠谱的公司,这 ...