2013-05-09 5 views
6

Есть ли способ конвертировать документ Word, где у меня есть несколько таблиц в файл Excel? Было бы очень полезно преобразовать таблицы.Преобразование Word docx в Excel с использованием OpenXML

Нечто подобное:

  • Открыть документ Слово используя OpenXML
  • Найти все таблицы 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 
} 

ответ

1

, чтобы получить все таблицы в файле 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(); 

и, наконец, превосходят функции, как показано ниже:

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

Также вы можете использовать формат CSV или HTML для создания файла excel. чтобы сделать это просто создать файл example.xlsx с этим контентом для CSV запятая delmiated:

col1, col2, col3, COL4 \ п

знач1, val2, val3val4 \ п

или в Формат 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> 
+0

К сожалению, мне нужна аналогичная функция, но с использованием OpenXML –

2

Ваши действия верны.

Я хотел бы поделиться некоторыми SDk документы, надеюсь, что это может помочь в какой-то степени:

Open XML SDK 2.5 for Office

При обработке таблиц слов:

Working with WordprocessingML tables (Open XML SDK)

При обработке таблиц Excel:

Working with the shared string table (Open XML SDK)

Working with SpreadsheetML tables (Open XML SDK)

Смежные вопросы