【问题标题】:Read word Document using C# Interop and populate it into the DataGrid?使用 C# Interop 读取 word 文档并将其填充到 DataGrid 中?
【发布时间】:2014-04-07 10:21:18
【问题描述】:

我想使用 C# Interop 读取 Word 文档并将其填充到 DataGrid 中。
我尝试通过 c# 中的简单控制台程序读取 Word 文档。

但我是 Asp.net 的新手,想知道如何实施该程序。
我可以创建 Word 文档,但希望将其填充到 DATA 网格中。

string filePath = null;
OpenFileDialog file = new OpenFileDialog();

file.Title = "Word File";
file.InitialDirectory = "C:\\";
file.RestoreDirectory = true;

// execute if block when dialog result box click ok button
if (file.ShowDialog() == DialogResult.OK) {
    // store selected file path
    filePath = file.FileName.ToString();          
}

try
{ 
    // create word application
    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.ApplicationClass();
    // create object of missing value
    object miss = System.Reflection.Missing.Value;
    // create object of selected file path
    object path = filePath;
    // set file path mode
    object readOnly = false;
    // open document                
    Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss,ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

    docs.ActiveWindow.Selection.WholeStory();

    docs.ActiveWindow.Selection.Copy();

    IDataObject data = Clipboard.GetDataObject();
    //populate data into Datagridview?

    docs.Close(ref miss, ref miss, ref miss);

【问题讨论】:

  • 到目前为止你有没有尝试过?如果是这样,请将其包含在您的问题中。
  • @TomFenech 我已经包含了上面的代码。现在我希望将 word 文档内容显示在 DATAGRID 中。如何实现?

标签: c# asp.net datagrid interop


【解决方案1】:

访问这些链接,我想你会在那里找到答案。

编辑:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Read and Display Data From an Word File (.doc or .docx) in ASP.NET</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <b>Please Select Excel File: </b>
                <asp:FileUpload ID="fileuploadExcel" runat="server" />&nbsp;&nbsp;
                <asp:Button ID="btnImport" runat="server" Text="Import Data" OnClick="btnImport_Click" />
                <br />
                <asp:Label ID="lblMessage" runat="server" Visible="False" Font-Bold="True" ForeColor="#009933"></asp:Label><br />
                <asp:GridView ID="grvWordData" runat="server">
                    <HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
                </asp:GridView>
            </div>
        </form>
    </body>
</html>

现在打开代码隐藏文件并添加以下命名空间

using System;
using System.Data;
using System.Data.OleDb;
using System.IO;

然后在后面的代码中编写以下代码

C#.NET 代码

protected void btnImport_Click(object sender, EventArgs e) {
    string connString = "";
    string strFileType = Path.GetExtension(fileuploadWord.FileName).ToLower();
    string path = fileuploadWord.PostedFile.FileName;

    //Connection String to Word file
    if (strFileType.Trim() == ".doc") {
        connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Word 8.0;HDR=Yes;IMEX=2\"";
    }
    else if (strFileType.Trim() == ".docx") {
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Word 12.0;HDR=Yes;IMEX=2\"";
    }

    string query = "SELECT * FROM [document1$]";
    OleDbConnection conn = new OleDbConnection(connString);
    if (conn.State == ConnectionState.Closed)
        conn.Open();

    OleDbCommand cmd = new OleDbCommand(query, conn);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    grvWordData.DataSource = ds.Tables[0];
    grvWordData.DataBind();
    da.Dispose();
    conn.Close();
    conn.Dispose();
}

【讨论】:

  • 感谢您的帮助。但我想将 word 文档填充到数据网格中。
【解决方案2】:

我建议您使用 Apache NPOI,它拥有大量的库,可用于阅读 MS Word 和其他 MS Office 文档。

http://poi.apache.org/ 用于 JAVA

http://npoi.codeplex.com/ 为.Net

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    相关资源
    最近更新 更多