产品制作完成后,要打印的文档成百上千,各部门整理完自己的说明书,随时提交给服务器上的管理账号,该账号一直在运行着,当检测到说明书就及时打印并记录文档名称,这样可提高工作效率、减轻劳动强度。
下面是C# ASP.NET 批量打印WORD和EXCEL文件的样例程序。
一 为项目 添加引用 相应的库
1 右击 项目名称 -- 添加引用,然后 转到 COM 页面
2 找到以下3项,逐一添加,其中的Office根据需要而定
Microsoft Excel 12.0 1.6
Object Library
Microsoft Office 12.0 2.4 Object
Library
Microsoft Word
12.0 8.4 Object
Library
3 对应的磁盘文件分别是:
C:\Program Files (x86)\Microsoft
Office\Office12\Excel.exe
C:\Program Files (x86)\Common Files\Microsoft
Shared\Office12\mso.dll
C:\Program Files (x86)\Microsoft
Office\Office12\MSWORD.OLB
4 注意
其中的OFFICE 需要才添加
二 主要代码如下
1 打印WORD
//1 添加引用
//C:\Program Files (x86)\Microsoft
Office\Office12\MSWORD.OLB
//2 using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Word;
protected void
btnPrintWord_Click(object sender, EventArgs e)
{
//打印的代码如下:
Microsoft.Office.Interop.Word.Application app =
null;
Microsoft.Office.Interop.Word.Document doc =
null;
object missing =
System.Reflection.Missing.Value;
object templateFile =
Server.MapPath("../App_data/")+@"表单模版.doc";
try
{
app = new
Microsoft.Office.Interop.Word.ApplicationClass();
doc =
app.Documents.Add(ref templateFile);
doc.PrintOut();//直接打印
//app.Visible = true; ;
//doc.PrintPreview();//预览
}
catch (Exception exp)
{
Response.Write("< script > alert ( '打印机异常' ) < /script
>");
}
//销毁word进程
finally
{
object
saveChange =
Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
if (doc !=
null)
doc.Close(ref
saveChange);
if (app !=
null)
app.Quit();
}
}
2 打印EXCEL
//1添加引用
//C:\Program Files (x86)\Microsoft
Office\Office12\Excel.exe
//2 using Excel=Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
protected void
btnPrintPreview_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application App =
new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks
Workbooks;
Microsoft.Office.Interop.Excel.Workbook
Workbook;
Microsoft.Office.Interop.Excel.Worksheet
Worksheet;
object objFilePath;
object oMissing =
System.Reflection.Missing.Value;
string strFilePath =
Server.MapPath("../App_Data/") + @"Excel模板.xlsx";
try
{
App.Visible
= false;//true;
Workbooks =
App.Workbooks;
objFilePath
= strFilePath;
object
Nothing = System.Reflection.Missing.Value;
Workbook =
App.Workbooks.Open(strFilePath);
//Workbook.PrintPreview(); //打印预览
Workbook.PrintOutEx(); //直接打印
//string
strSheetName = "维修方案";
//Worksheet
=
(Microsoft.Office.Interop.Excel.Worksheet)Workbook.Worksheets[strSheetName];
//Worksheet
=
(Microsoft.Office.Interop.Excel.Worksheet)Workbook.Worksheets[0];
//Worksheet.PrintPreview();
Workbook.Save();
Workbook.Close();
App.Quit();
}
catch(Exception exp)
{
Response.Write("< script > alert ( '打印机异常' ) < /script
>");
}
}
加载中,请稍候......