Microsoft Interop:Excel列名称

时间:2012-03-15 13:53:58

标签: c# office-interop excel-interop

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

在excel-sheet中,列名称类似于A,B,C,D,....,AA,AB,....等等。有没有办法阅读这个列名?

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

此致 Priyank

2 个答案:

答案 0 :(得分:11)

     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<string>中,然后您可以将其绑定到下拉框。

答案 1 :(得分:-1)

您还可以按索引读取列

让您的Excel工作表对象为“excelWorksheet”,然后您可以将其作为

进行访问

用于设置您可以使用的值

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

获取可以使用的值

string result = excelWorksheet.Cells [rowindex,columnindex] .Value;

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

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

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

我用过它&amp;它完美地运作