• 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         }

    说明:自己只是收集,以便以后自己的使用!希望对你也有所帮助!

  • 相关阅读:
    [POJ1176]Party Lamps(DFS,规律)
    [POJ1598]Excuses, Excuses!(模拟)
    [POJ2192]Zipper(DFS,剪枝)
    [POJ2157]Maze(DFS)
    [POJ1950]Dessert(DFS)
    [HIHO1353]满减优惠(状压,枚举)
    [HIHO1177]顺子(暴力,枚举)
    [HIHO1152]Lucky Substrings(暴力,枚举)
    计蒜客 25985.Goldbach-米勒拉宾素数判定(大素数) (2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B)
    计蒜客 28206.Runway Planning (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 F)
  • 原文地址:https://www.cnblogs.com/ruicky/p/2574153.html
Copyright © 2020-2023  润新知