加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#ASP.NET批量打印WORD和EXCEL文件

(2019-10-12 16:50:30)
标签:

批量打印

word

excel

分类: 代码天地
产品制作完成后,要打印的文档成百上千,各部门整理完自己的说明书,随时提交给服务器上的管理账号,该账号一直在运行着,当检测到说明书就及时打印并记录文档名称,这样可提高工作效率、减轻劳动强度。
下面是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 

C#ASP.NET批量打印WORD和EXCEL文件


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 需要才添加
Excel.exe 也可以按 《找不到类型库“Excel”的包装程序集解决方法》的方法转成 Excel.dll 再添加

二 主要代码如下

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 >");
       }



    }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有