C# 如何在DataGridView中显示包含Excel标题的完整Excel数据?当我在OleDB连接上放置标题时,单元格变为空
我想查看datagridview中带有标题的Excel数据 我已尝试将HDR=Yes更改为HDR=No。它显示所有数据,但Excel文件上有标题 我更改了此代码:C# 如何在DataGridView中显示包含Excel标题的完整Excel数据?当我在OleDB连接上放置标题时,单元格变为空,c#,excel-2016,C#,Excel 2016,我想查看datagridview中带有标题的Excel数据 我已尝试将HDR=Yes更改为HDR=No。它显示所有数据,但Excel文件上有标题 我更改了此代码: string pathconn=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+filePath+”;扩展属性=\”Excel 12.0;HDR=否;IMEX=1\“;” 致: string pathconn=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+fil
string pathconn=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+filePath+”;扩展属性=\”Excel 12.0;HDR=否;IMEX=1\“;”代码>
致:
string pathconn=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+filePath+”;扩展属性=\”Excel 12.0;HDR=否;IMEX=1\“;”代码>
我使用此函数获取带有标题的数据
public DataTable importaExcelaDT(string file)
{
DataTable dt = new DataTable();
DataTable dtExcel = new DataTable();
OleDbCommand cmdExcel = new OleDbCommand();
string cadenaConexion = "provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + file + "';Extended Properties = \"Excel 12.0 Xml;HDR=No;IMEX=1\";";
OleDbConnection olConexion = new OleDbConnection(cadenaConexion);
olConexion.Open();
OleDbDataAdapter oda = new OleDbDataAdapter();
dt = olConexion.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string sheet = dt.Rows[0]["TABLE_NAME"].ToString();
cmdExcel.Connection = olConexion;
cmdExcel.CommandText = "SELECT * FROM [" + sheet + "]";
oda.SelectCommand = cmdExcel;
oda.Fill(dtExcel);
olConexion.Close();
olConexion.Dispose();
oda.Dispose();
return dtExcel;
}
您必须在列名中输入datatable第一行的文本。
然后删除该行
Datatable dtExcel = importaExcelaDT(filePath);
for(int i = 0; i < dtExcel.Columns.Count; i++)
{
string columnName = dtExcel.Rows[0][i].ToString();
if (columnName == "") //throws error if column name is empty
columnName = " ";
dtExcel.Columns[i].ColumnName = columnName;
}
dtExcel.Rows.RemoveAt(0);
yourDataGridView.DataSource = dtExcel;
Datatable dtExcel=importExceladt(文件路径);
对于(int i=0;i
我也有同样的问题。在我的例子中,问题是列标题中的字符串。如果标题包含“.”(点),则不显示整个列。我想问题在于角色的类型。尝试从标头中删除任何非ASCII字符,然后重试。仍然没有更改。我试图用“.”(点)替换列,也有没有点的列,但数据仍然是空的。仍然没有回答我的问题:(但感谢您的努力:)此函数返回一个包含所有数据(包括标题)的datatable。您只需将datatable指定为datagridview数据源。出于某种原因,HDR必须为No。如果使用HDR=Yes运行它,则不会返回标题。这是我尝试过的代码的输出,但在红色框中应该是我的数据的标题。是的,它返回我想要的所有数据,但标题在F1、F2、F3中命名…现在我明白你想要什么了。您希望将网格标题创建为Excel标题。