使用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; }
你也可以使用CSV
或HTML
格式创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>
- 在Excel中编辑embedded在Word文档中的Excel对象
- 优化C#方法,比较和创build差异Excel文件
- c#Excel的Application.EnableEvents
- C#System.Runtime.InteropServices.COMException(0x800A03EC):从HRESULTexception:0x800A03EC Microsoft.Office.Interop.Excel._Workbook.SaveAs()
- Excel中的date范围不起作用
- 在c#中导入xls和xlsx文件,无需安装Office
- 如何在保存Excel文件时不使用C#和Excel 2010打开格式警告
- 如何在C ++上为MS Excel实现一个简单的加载项
- 在Excel中突出显示单元格/使其变成粗体