我正在使用Microsoft Interop来读取数据。
在Excel表格中,列名类似于A、B、C、D......AA、AB等等。有没有办法读取这些列名?
如果您需要其他信息,请告诉我。
敬礼, Priyank
我正在使用Microsoft Interop来读取数据。
在Excel表格中,列名类似于A、B、C、D......AA、AB等等。有没有办法读取这些列名?
如果您需要其他信息,请告诉我。
敬礼, Priyank
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>
中,你可以将其绑定到下拉框。您还可以按索引读取列
假设您的Excel工作表对象为"excelWorksheet",则可以通过以下方式访问它:
要设置值,您可以使用:
excelWorksheet.Cells[rowindex, columnindex].Value = "test";
要获取值,您可以使用:
string result = excelWorksheet.Cells[rowindex, columnindex].Value ;
请记住,字段是动态生成的,因此在编写代码时可能会显示错误,但请忽略它们。
例如,如果您想在Excel工作表的第1行和第2列中设置文本,则可以使用以下代码:
excelWorksheet.Cells[1, 2].Value = "test";
我已经使用它并且完美运行。