在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、操作Word 首先引用这个DLL,Microsoft.Office.Interop.Word,官方提供的。 可以操作word文字,表格,图片等。 文字通过替换关键字的方式实现 document.Paragraphs[i].Range.Text = temptext.Replace("{$village}", "HELLO WORLD"); 表格可以自己获取模板中已有的表格 Microsoft.Office.Interop.Word.Table table1 = document.Tables[1]; table1.Cell(1, 1).Range.Text = "TEST1"; 也可以自己创建表格,可以设计表头,单元格等。
int tableRow = 6 ;
int tableColumn = 6;
//定义一个Word中的表格对象
Microsoft.Office.Interop.Word.Table table = document.Tables.Add(document.Paragraphs[i].Range,
tableRow, tableColumn, ref Nothing, ref Nothing);
//默认创建的表格没有边框,这里修改其属性,使得创建的表格带有边框
table.Borders.Enable = 1;
table.Cell(1, 1).Merge(table.Cell(2, 1));//纵向合并
table.Cell(1, 1).Range.Text = "牌号/代码";
table.Cell(1, 2).Merge(table.Cell(2, 2));//纵向合并
table.Cell(1, 2).Range.Text = "标准编号";
有一篇文章写的很详细可以参考下:https://www.cnblogs.com/xh6300/p/5915717.html
public bool CreateWord(DataTable dttmp) { bool result = false; Object Nothing = Missing.Value; Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document document = null; string path = @"C:\Users\Administrator\Desktop\BB\合同模版.doc"; object FileName = @"C:\Users\Administrator\Desktop\BB\" + DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".doc"; application.Visible = false; document = application.Documents.Open(path); int rowNum = dttmp.Rows.Count; for (int i = 1; i <= document.Paragraphs.Count; i++) { string temptext = document.Paragraphs[i].Range.Text; //以下为替换文档模版中的关键字 if (temptext.Contains("{$village}")) document.Paragraphs[i].Range.Text = temptext.Replace("{$village}", "HELLO WORLD"); Microsoft.Office.Interop.Word.Table table1 = document.Tables[1]; table1.Cell(1, 1).Range.Text = "TEST1"; if (temptext.Contains("{$Table1}")) { //设置表格的行数和列数 int tableRow = 6 + rowNum; int tableColumn = 13; //定义一个Word中的表格对象 Microsoft.Office.Interop.Word.Table table = document.Tables.Add(document.Paragraphs[i].Range, tableRow, tableColumn, ref Nothing, ref Nothing); //默认创建的表格没有边框,这里修改其属性,使得创建的表格带有边框 table.Borders.Enable = 1;//这个值可以设置得很大 table.Cell(1, 1).Merge(table.Cell(2, 1));//纵向合并 table.Cell(1, 1).Range.Text = "牌号/代码"; table.Cell(1, 2).Merge(table.Cell(2, 2));//纵向合并 table.Cell(1, 2).Range.Text = "标准编号"; table.Cell(1, 6).Merge(table.Cell(2, 6)); table.Cell(1, 6).Range.Text = "单重\n(MT)"; table.Cell(1, 7).Merge(table.Cell(2, 7)); table.Cell(1, 7).Range.Text = "张数"; table.Cell(1, 8).Merge(table.Cell(2, 8)); table.Cell(1, 8).Range.Text = "重量\n(MT))"; table.Cell(1, 9).Merge(table.Cell(2, 9)); table.Cell(1, 9).Range.Text = "单价\n(元/吨)"; table.Cell(1, 10).Merge(table.Cell(2, 10)); table.Cell(1, 10).Range.Text = "金额(人民币)"; table.Cell(1, 13).Merge(table.Cell(2, 13)); table.Cell(1, 13).Range.Text = "交货期"; table.Cell(1, 3).Merge(table.Cell(1, 5));//横向合并 table.Cell(1, 3).Range.Text = "规格(mm)"; table.Cell(2, 3).Range.Text = "厚度"; table.Cell(2, 4).Range.Text = "宽度"; table.Cell(2, 5).Range.Text = "宽度"; table.Cell(1, 9).Merge(table.Cell(1, 10)); table.Cell(1, 10).Range.Text = "表面加工"; table.Cell(2, 11).Range.Text = "边缘"; table.Cell(2, 11).Range.Text = "精度"; } } object format = document.SaveFormat; document.Save(); application.Quit(ref Nothing, ref Nothing, ref Nothing); return result; } 二、Word导出PDF
public bool WordToPDF(string sourcePath) { bool result = false; Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document document = null; try { application.Visible = false; document = application.Documents.Open(sourcePath); string PDFPath = sourcePath.Replace(".doc", ".pdf");//pdf存放位置 if (!File.Exists(@PDFPath))//存在PDF,不需要继续转换 { document.ExportAsFixedFormat(PDFPath, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF); } result = true; } catch (Exception e) { Console.WriteLine(e.Message); result = false; } finally { //document.Close(); } return result; } 服务器部署可以参考;https://www.cnblogs.com/5426z/articles/4865312.html |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论