【问题标题】:Adding MS Excel library to VS 2015 Express将 MS Excel 库添加到 VS 2015 Express
【发布时间】:2016-09-20 12:39:02
【问题描述】:

我的电脑上安装了 VS Express 2015 和 MS office 2007。我需要从 Excel 表中读取一些值。我添加了 Microsoft Office 12.0 对象库,但我不能使用它

using Microsoft.Office.Interop.Excel;

我收到以下错误:命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(您是否缺少程序集引用?)

【问题讨论】:

  • 我经常使用Interop Excel,所以这里是我为了获得它而添加的参考:C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll。另一种方法是找到Microsoft Excel Object Library,根据Cannot find Microsoft.Office.Interop Visual Studio
  • 我找不到这个 C:\Windows\assembly\GAC_MSIL
  • 然后尝试按照链接中的说明进行操作。这应该适用于您的情况。
  • 还有其他解决方法吗?我将安装那些 .dll 和 VS2015 的 Office 工具并尝试。

标签: c# excel visual-studio


【解决方案1】:

当您希望从 Excel 表中读取一些值时,EPPlus 是使用 Excel 文件的简单方法。这是 Open office XML 的包装器。

public static DataTable getDataTableFromExcel(string path)
{
    using (var pck = new OfficeOpenXml.ExcelPackage())
    {
        using (var stream = File.OpenRead(path))
        {
            pck.Load(stream);
        }
        var ws = pck.Workbook.Worksheets.First();  
        DataTable tbl = new DataTable();
        bool hasHeader = true; // adjust it accordingly( i've mentioned that this is a simple approach)
        foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column])
        {
            tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column));
        }
        var startRow = hasHeader ? 2 : 1;
        for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
        {
            var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column];
            var row = tbl.NewRow();
            foreach (var cell in wsRow)
            {
                row[cell.Start.Column - 1] = cell.Text;
            }
            tbl.Rows.Add(row);
        }
        return tbl;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2017-11-21
    • 2012-05-21
    • 2015-03-20
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多