word 导出(带有一个图片,一张datatable)
View Code
1 /// <summary> 2 /// 不依赖Com组件利用第三方开源控件(DocX)导出标准Word文件,仅支持2007格式 3 /// !以下导出仅适用于特定的格式(一个图片和一个DataTable),如要用于其他导出,请自行修改 4 /// </summary> 5 /// <param name="dt">要导出的DataTable</param> 6 /// <param name="imagePath">要导出的图片路径</param> 7 /// <param name="fileName">要导出的文件名称</param> 8 public void ExportWord(DataTable dt, string imagePath, string fileName) 9 { 10 //新建一个document文档 11 Novacode.DocX document = Novacode.DocX.Create(HttpContext.Current.Server.MapPath("Blank07.docx")); 12 13 System.IO.MemoryStream file = new System.IO.MemoryStream(); 14 //在这里写入word文件内容 15 16 //插入统计结果图片 17 Novacode.Image image = document.AddImage(imagePath); 18 Novacode.Picture picture = image.CreatePicture(); 19 20 document.InsertParagraph().AppendPicture(picture); 21 22 //插入统计结果表格数据,并设置单元格样式 23 Novacode.Table table = document.InsertTable(dt.Rows.Count, dt.Columns.Count); 24 //边框样式 25 Novacode.Border border = new Novacode.Border(Novacode.BorderStyle.Tcbs_single, Novacode.BorderSize.two, 0, System.Drawing.Color.Black); 26 //table.SetBorder(Novacode.TableBorderType.Bottom,Novacode.Border 27 for (int i = 0; i < dt.Rows.Count; i++) 28 { 29 for (int j = 0; j < dt.Columns.Count; j++) 30 { 31 table.Rows[i].Cells[j].Paragraphs[0].Append(dt.Rows[i][j].ToString()); 32 table.Rows[i].Cells[j].SetBorder(Novacode.TableCellBorderType.Top, border); 33 table.Rows[i].Cells[j].SetBorder(Novacode.TableCellBorderType.Right, border); 34 table.Rows[i].Cells[j].SetBorder(Novacode.TableCellBorderType.Bottom, border); 35 table.Rows[i].Cells[j].SetBorder(Novacode.TableCellBorderType.Left, border); 36 } 37 } 38 39 //插入统计结果表格标题,并设置单元格样式 40 Novacode.Row tableHeader = table.InsertRow(0); 41 for (int i = 0; i < dt.Columns.Count; i++) 42 { 43 tableHeader.Cells[i].Paragraphs[0].Append(dt.Columns[i].ColumnName); 44 tableHeader.Cells[i].SetBorder(Novacode.TableCellBorderType.Top, border); 45 tableHeader.Cells[i].SetBorder(Novacode.TableCellBorderType.Right, border); 46 tableHeader.Cells[i].SetBorder(Novacode.TableCellBorderType.Bottom, border); 47 tableHeader.Cells[i].SetBorder(Novacode.TableCellBorderType.Left, border); 48 } 49 50 document.SaveAs(file); 51 file.Close(); 52 response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; 53 string filename = HttpUtility.UrlEncode(fileName + ".docx");//url编码.防止中文乱码. 54 response.AddHeader("Content-Disposition", "attachment;filename=" + filename); 55 response.BinaryWrite(file.GetBuffer()); 56 response.Flush(); 57 response.End(); 58 }
说明:自己只是收集,以便以后自己的使用!希望对你也有所帮助!
作者:ruicky
出处:http://www.cnblogs.com/ruicky/
欢迎任何形式的转载,未经作者同意,请保留此段声明!