C# 使用OpenXML将Word docx转换为Excel

C# 使用OpenXML将Word docx转换为Excel,c#,excel,ms-word,openxml,C#,Excel,Ms Word,Openxml,有没有办法将我有一些表格的Word文档转换成Excel文件? 转换表将非常有用 诸如此类: 使用OpenXML打开Word文档 查找所有表xml标记 复制xml标记 创建Excel文件 将表格中的xml标记从Word插入新的Excel文件 我是说 void OpenWordDoc(string filePath) { _documentWord = SpreadsheetDocument.Open(filePath, true); } List<string> GetAllTa

有没有办法将我有一些表格的Word文档转换成Excel文件? 转换表将非常有用

诸如此类:

  • 使用OpenXML打开Word文档
  • 查找所有表xml标记
  • 复制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
}
void OpenWordDoc(字符串文件路径)
{
_documentWord=电子表格文档.Open(filePath,true);
}
列出GetAllTablesXMLTags()
{
//查找并复制
}
列表CreateExcelFile(字符串文件路径)
{
TemplateExcelDocument excelDocument=新建TemplateExcelDocument();
_documentExcel=excelDocument.CreatePackage(文件路径);
}
void InsertXmlTagsToExcelFile(字符串文件路径)
{
创建Excel文件(文件路径);
var xmlTable=GetAllTablesXMLTags();
//…插入到_documentExcel
}

要获取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>

可乐
可乐
可乐
瓦尔1
瓦尔2
val3

您的步骤是正确的

我想和大家分享一些sdk文档,希望对大家有所帮助:

处理单词表时:

处理excel表格时:


不幸的是,我需要类似的函数,但使用的是OpenXML