关于EXCEL导出DATATABLE列名的有关问题
关于EXCEL导出DATATABLE列名的问题。
[color=#FF9900]链接字符串如下:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + "Mode=Share Deny Read|Share Deny Write;Extended Properties=\"Excel 8.0;HDR=yes\";");
之前用这个的时候,一直都没问题。
可就在刚刚出现问题了。
EXCEL第一行应该是默认为列名的吧。
刚刚导出DATATABLE的时候,发现如果列名为数字的时候,就被自动转化为F+(数字),如果是其他字符,则没问题,如Aaaa1,则没问题。
就算我加上了HDR=yes,也是照样出现这情况?
接着,我把excel表列名为数字的列的格式设置为文本,还是出现F+数字的情况?
这次真的晕了。
难道,我哪里弄错了吗?
求解。。[/color]
------解决方案--------------------
[color=#FF9900]链接字符串如下:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + "Mode=Share Deny Read|Share Deny Write;Extended Properties=\"Excel 8.0;HDR=yes\";");
之前用这个的时候,一直都没问题。
可就在刚刚出现问题了。
EXCEL第一行应该是默认为列名的吧。
刚刚导出DATATABLE的时候,发现如果列名为数字的时候,就被自动转化为F+(数字),如果是其他字符,则没问题,如Aaaa1,则没问题。
就算我加上了HDR=yes,也是照样出现这情况?
接着,我把excel表列名为数字的列的格式设置为文本,还是出现F+数字的情况?
这次真的晕了。
难道,我哪里弄错了吗?
求解。。[/color]
------解决方案--------------------
public void EcxelToDataGridView(string filePath, DataGridView dgv)
{
//根据路径打开一个excel文件并将数据填充到dataset中
string strConn = @"Provider = Microsoft.Ace.OLEDB.12.0; Data Source = " + filePath + "; Extended Properties = 'Excel 12.0;HDR = NO; IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
strExcel = "select * from [sheet1$]";
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, strConn);
DataSet ds = new DataSet();