【问题标题】:Microsoft Interop: Excel Column NamesMicrosoft 互操作:Excel 列名称
【发布时间】:2013-08-14 19:49:00
【问题描述】:

我正在使用 Microsoft Interop 读取数据。

在 excel-sheet 中,列名类似于 A、B、C、D、....、AA、AB、.... 等等。有什么方法可以读取此列名吗?

如果您需要任何其他信息,请告诉我。

问候, 普里扬克

【问题讨论】:

  • “读取列名”是什么意思?你想知道你在哪一栏吗?
  • @Jetti:是的,我想读取列名并在下拉列表中显示给用户。
  • 按列名...你的意思是每列的第 1 行是什么,对吗?
  • @Jetti:不,不是在第 1 行,而是 Excel 为每一列显示的内容。例如A,B,C
  • 看看我的回答,它会给你每列的字母名称

标签: c# office-interop excel-interop


【解决方案1】:
     Excel.Application xlApp = new Excel.Application();
     Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("workbookname");
     Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[1]; // assume it is the first sheet
     int columnCount = xlWorksheet.UsedRange.Columns.Count;
     List<string> columnNames = new List<string>();
     for (int c = 1; c < columnCount; c++)
     {
         if (xlWorksheet.Cells[1, c].Value2 != null)
         {
             string columnName = xlWorksheet.Columns[c].Address;
             Regex reg = new Regex(@"(\$)(\w*):");
             if (reg.IsMatch(columnName))
             {
                 Match match = reg.Match(columnName);             
                 columnNames.Add(match.Groups[2].Value);
             }                      
        }
     }

这会将每个列名放在 List&lt;string&gt; 中,然后您可以将其绑定到下拉框。

【讨论】:

  • 您在哪里可以找到有关整个 interop.excel 命名空间的文档?通过查看 MSDN,我似乎找不到任何有趣的东西。
  • @squelos 你可以找到一些信息from MSDN here。我从书中得到的其他信息。我还有一篇博文,您可以阅读 here 处理使用 C# 和 .NET 4.0 读取 Excel 数据
  • @PriyankThakkar 我很高兴能帮上忙
  • 对我来说很好的起点!我曾想将列名从 Excel 复制到 CSV 文件,并将您的代码调整为 columnNames.Add(xlWorksheet.Cells[1, c].Value);谢谢!
【解决方案2】:

您也可以按索引读取列

让你的 Excel 工作表对象为 "excelWorksheet" 然后你就可以访问它了

设置一个可以使用的值

excelWorksheet.Cells[rowindex, columnindex].Value = "test";

获取可以使用的值

字符串结果 = excelWorksheet.Cells[rowindex, columnindex].Value ;

请记住,字段是动态生成的,因此在编写代码时可能会显示错误,但请忽略它

例如,您想在 Excel 工作表第 1 行和第 2 列中设置文本

excelWorksheet.Cells[1, 2].Value = "test";

我用过,效果很好

【讨论】:

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