使用列单元格名称读取Excel

时间:2019-02-05 12:58:55

标签: c# excel oledb dataadapter

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

这是我得到的图像。

enter image description here

我想要以下格式。

enter image description here,这是我的代码。

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);                       
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

建立数据表后,只需更改列名:

var GetText ;
require('https').get('https://www.random.org/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new', (res) => {
res.setEncoding('utf8');
res.on('data', function (body) {
    console.log(body);
});
});
console.log(GetText);

for (int i = 0; i < dtexcel.Columns.Count; i++) dtexcel.Columns[i].ColumnName = GetExcelColumnName(i + 7); 之所以存在,是因为您从G列开始。如果从A列开始,它将为+7

+1方法可从此处进行偷猎:

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

为了使您确信此方法有效,我在一个示例项目中对其进行了尝试:

enter image description here