使用OpenXML将Word docx转换为Excel

有什么办法将我有一些表格的Word文档转换成Excel文件? 转换表格会非常有帮助。

类似的东西:

  • 使用OpenXML打开Word文档
  • 查找所有表格xml标签
  • 复制xml标签
  • 创buildExcel文件
  • 从Word中将表格插入xml标签到新的Excel文件

我的意思是

void OpenWordDoc(string filePath) { _documentWord = SpreadsheetDocument.Open(filePath, true); } List<string> GetAllTablesXMLTags() { //find and copy } List<string> CreateExcelFile(string filePath) { TemplateExcelDocument excelDocument = new TemplateExcelDocument(); _documentExcel = excelDocument.CreatePackage(filePath); } void InsertXmlTagsToExcelFile(string filePath) { CreateExcelFiles(filePath); var xmlTable = GetAllTablesXMLTags(); // ... insert to _documentExcel } 

你的步骤是正确的。

我想分享一些sdk文件,希望能在一定程度上有所帮助:

为Office打开XML SDK 2.5

处理单词表时:

使用WordprocessingML表(Open XML SDK)

处理Excel表格时:

使用共享string表(Open XML SDK)

使用SpreadsheetML表(Open XML SDK)

要获取docx文件中的所有表,您可以使用以下代码:

 using System; using Independentsoft.Office; using Independentsoft.Office.Word; using Independentsoft.Office.Word.Tables; namespace Sample { class Program { static void Main(string[] args) { WordDocument doc = new WordDocument("c:\\test.docx"); Table[] tables = doc.GetTables(); foreach (Table table in tables) { //read data } } } } 

把它们写入excel文件,你必须为每个单元格做这个:

  app.Visible = false; workbooks = app.Workbooks; workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); sheets = workbook.Worksheets; worksheet = (_Worksheet)sheets.get_Item(1); excel(row, column, "value"); workbook.Saved = true; workbook.SaveAs(output_file); app.UserControl = false; app.Quit(); 

最后是excel函数如下:

  public void excel(int row, int column, string value) { worksheet.Cells[row, column] = value; } 

你也可以使用CSVHTML格式创build一个excel文件。 要做到这一点,只需创build一个文件example.xlsx与CSV内容的逗号delmiated:

col1,col2,col3,col4 \ n

val1,val2,val3val4 \ n

或以HTML格式:

 <table> <tr> <td>col1</td> <td>col2</td> <td>col3</td> </tr> <tr> <td>val1</td> <td>val2</td> <td>val3</td> </tr> </table>