如何使用免費控件將Word表格中的數據導入到Excel中

我一般使用MS Excel來存儲和處理大量數據,但有時候常常會碰到一個問題—我須要的數據存儲在word表格中,而不是在Excel中,這樣處理起來很是麻煩,尤爲是在數據比較龐大的時候,html

這時我迫切地須要將word表格中的數據導入到Excel中。相信你們也碰到過一樣的問題,下面我就給你們分享一下在C#中如何使用免費控件來實現這一功能。這裏,我使用了兩個免費API,spa

DocX和Spire.Xls。3d

有須要的朋友能夠下載使用。下載地址:excel

DocX:codeplex官網code

Spire.Xls: E-iceblue官網htm

注意:在建立項目後,須要添加這兩個控件的相關.dll文件做爲項目的引用。對象

 

                       

 

如下是詳細步驟:blog

首先我使用DocX API 來獲取word表格中的數據,而後將數據導入System.Data.DataTable對象中文檔

代碼片斷:get

步驟1:加載word文檔;

DocX document = DocX.Load("E:\\Program Files\\data.docx");

步驟2從文檔中獲取表格。做爲示例,這裏我僅獲取了第一個表格;

//獲取文檔的第一個表格

Table table = document.Tables[0];

步驟3建立一個DataTable對象,並導入word表格中的數據;

//建立一個Datable對象並命名爲order

DataTable dt = new DataTable("order");

//將word表格中的數據導入Datable

DataColumn column;

for (int i = 0; i < table.ColumnCount; i++)

{

column = new DataColumn();

column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;

dt.Columns.Add(column);

}

DataRow newRow;

for (int i = 1; i < table.RowCount; i++)

{

newRow = dt.NewRow();

Row row = table.Rows[i];

for (int j = 0; j < table.ColumnCount; j++)

{

newRow[j] = row.Cells[j].Paragraphs[0].Text;

}

dt.Rows.Add(newRow);

}


效果圖以下:

原word文檔:

 

Datable:

 

 

其次,我使用了Spire.Xls API來建立一個Workbook對象,並將dataTable插入到Workbook中,而後將文件保存爲.xlsx文件。

代碼片斷:

步驟1建立一個Workbook實例並新建一個空的worksheet;

//建立一個Workbook示例

Workbook workbook = new Workbook();

//新建一個空的worksheet

workbook.CreateEmptySheets(1);

//獲取第一個worksheet

Worksheet sheet = workbook.Worksheets[0];

步驟2將dataTable中的數據導入到worksheet;

//將dataTable中的數據插入到worksheet中,1表明第一行和第一列

sheet.InsertDataTable(dt, true, 1, 1);

步驟3 保存到一個excel文件中;

workbook.SaveToFile("Data.xlsx",ExcelVersion.Version2007);


生成的excel文件效果圖:

 

 

所有代碼:

using System.Data;

using Spire.Xls;

using Novacode; //Docx

namespace word_table_to_excel

{

    class Program

    {

        static void Main(string[] args)

        {

            DocX document = DocX.Load("E:\\Program Files\\data.docx");

            Table table = document.Tables[0];

            DataTable dt = new DataTable("order");

            DataColumn column;

            for (int i = 0; i < table.ColumnCount; i++)

            {

                column = new DataColumn();

                column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;

                dt.Columns.Add(column);

            }

            DataRow newRow;

            for (int i = 1; i < table.RowCount; i++)

            {

                newRow = dt.NewRow();

                Row row = table.Rows[i];

                for (int j = 0; j < table.ColumnCount; j++)

                {

                    newRow[j] = row.Cells[j].Paragraphs[0].Text;

                }

                dt.Rows.Add(newRow);

            }

            Workbook workbook = new Workbook();

            workbook.CreateEmptySheets(1);

            Worksheet sheet = workbook.Worksheets[0];

            sheet.InsertDataTable(dt, true, 1, 1);

            workbook.SaveToFile("Data.xlsx", ExcelVersion.Version2007);

        }

    }

}


總結:

這是兩款獨立的免費軟件,使用時不須要安裝MS Office。使我節省了很多的時間。若是你有好的意見或建議,但願能夠在這裏相互分享。

 

但願本文能給您帶來必定的幫助。

相關文章
相關標籤/搜索