在很多情况下,我们会遇到要将Word里面的表格完整的导入到Excel中去,但是一般都不太容易实现,下面分享一个在借助组件的前提下来实现该操作的方案。(转自http://www.cnblogs.com/Yesi/p/4994086.html
组件:Spire.Office for .NET
原Word文档:
C# 如何将数据从Word导入到Excel-LMLPHP
第一步:添加引用组件
C# 如何将数据从Word导入到Excel-LMLPHP
具体代码演示:
第二步:将数据导入从Word文档中导入到System.Data.DataTable对象中

  1. DocX document = DocX.Load("E:\\Program Files\\data.docx");

  2. //获取文档的第一个表格
  3. Table table = document.Tables[0];

  4. //创建一个Datable对象并命名为order

  5. DataTable dt = new DataTable("order");

  6. //将word表格中的数据导入Datable

  7. DataColumn column;

  8. for (int i = 0; i < table.ColumnCount; i++)

  9. {

  10. column = new DataColumn();

  11. column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;

  12. dt.Columns.Add(column);

  13. }

  14. DataRow newRow;

  15. for (int i = 1; i < table.RowCount; i++)

  16. {

  17. newRow = dt.NewRow();

  18. Row row = table.Rows[i];

  19. for (int j = 0; j < table.ColumnCount; j++)

  20. {

  21. newRow[j] = row.Cells[j].Paragraphs[0].Text;

  22. }

  23. dt.Rows.Add(newRow);

  24. }
导入datatable后:
C# 如何将数据从Word导入到Excel-LMLPHP
第三步,创建一个Workbook对象,并将dataTable插入到Workbook中,然后将文件保存为.xlsx文件

  1. //创建一个Workbook示例
  2. Workbook workbook = new Workbook();

  3. //新建一个空的worksheet
  4. workbook.CreateEmptySheets(1);

  5. //获取第一个worksheet
  6. Worksheet sheet = workbook.Worksheets[0];

  7. //将dataTable中的数据插入到worksheet中,1代表第一行和第一列
  8. sheet.InsertDataTable(dt, true, 1, 1);

  9. //保存文件
  10. workbook.SaveToFile("Data.xlsx",ExcelVersion.Version2007);
生成的excel文件效果图:
C# 如何将数据从Word导入到Excel-LMLPHP

全部代码如下:

  1. using System.Data;

  2. using Spire.Xls;

  3. using Novacode; //Docx

  4. namespace word_table_to_excel

  5. {

  6.     class Program

  7.     {

  8.         static void Main(string[] args)

  9.         {

  10.             DocX document = DocX.Load("E:\\Program Files\\data.docx");

  11.             Table table = document.Tables[0];

  12.             DataTable dt = new DataTable("order");

  13.             DataColumn column;

  14.             for (int i = 0; i < table.ColumnCount; i++)

  15.             {

  16.                 column = new DataColumn();

  17.                 column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;

  18.                 dt.Columns.Add(column);

  19.             }

  20.             DataRow newRow;

  21.             for (int i = 1; i < table.RowCount; i++)

  22.             {

  23.                 newRow = dt.NewRow();

  24.                 Row row = table.Rows[i];

  25.                 for (int j = 0; j < table.ColumnCount; j++)

  26.                 {

  27.                     newRow[j] = row.Cells[j].Paragraphs[0].Text;

  28.                 }

  29.                 dt.Rows.Add(newRow);

  30.             }

  31.             Workbook workbook = new Workbook();

  32.             workbook.CreateEmptySheets(1);

  33.             Worksheet sheet = workbook.Worksheets[0];

  34.             sheet.InsertDataTable(dt, true, 1, 1);

  35.             workbook.SaveToFile("Data.xlsx", ExcelVersion.Version2007);

  36.         }

  37.     }

  38. }
09-26 16:04