【问题标题】:Read Excel with column cell name使用列单元格名称读取 Excel
【发布时间】:2019-06-29 07:21:12
【问题描述】:

我正在读取一个 Excel 文件并在 DataGrid 中显示。我需要显示列单元格名称以及单元格值。例如,如果我在 A 列中有任何值,则数据表的标题应显示为 A、B、C、……、AA、BB,……但在这里我看到的是 F1、F2、……

这是我得到的图像。

我想要如下格式。

这是我的代码。

string conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
               ";Extended Properties='Excel 12.0;HDR=NO;IMEX=1;';";

using (OleDbConnection con = new OleDbConnection(conn))
{                
    string selectQuery = "SELECT * FROM [Sheet2$G1:L20]";

    OleDbDataAdapter oleAdpt = new OleDbDataAdapter(selectQuery, con);
    oleAdpt.Fill(dtexcel);                       
}

任何帮助将不胜感激。

【问题讨论】:

标签: c# excel oledb dataadapter


【解决方案1】:

构建数据表后,只需更改列名即可:

for (int i = 0; i < dtexcel.Columns.Count; i++)
    dtexcel.Columns[i].ColumnName = GetExcelColumnName(i + 7);

+7 存在是因为您从 G 列开始。如果您从 A 列开始,它将是 +1

GetExcelColumnName 方法可以从这里偷取:

https://*.com/a/182924/1278553

为了给您一些信心,我在一个示例项目中进行了尝试:

【讨论】: