使用OpenXML将Word docx转换为Excel
本文关键字:转换 Excel docx Word OpenXML 使用 | 更新日期: 2023-09-27 18:12:54
是否有任何方法将Word文档转换为Excel文件,我有一些表格?转换表格会很有帮助。
像这样:
- 使用OpenXML打开Word文档
- 查找所有表xml-tags
- 复制xml标记 创建Excel文件
- 将xml标签与表格从Word插入到新的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文档,希望能有所帮助:
Open XML SDK 2.5 for Office
处理单词表时:
使用WordprocessingML表(Open XML SDK)
处理excel表格时:
使用共享字符串表(Open XML SDK)
使用电子表格表(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
格式创建excel文件。要做到这一点,只需创建一个文件example.xlsx
,内容为CSV,逗号分隔:
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>