Excel里有一列叫"No.",读取之后变成了No#,求大神
DataTable dt = new DataTable();
string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'", fileName);
OleDbConnection conn = new OleDbConnection(connectionString);
try
{
conn.Open();//打开数据库
string sql = @"[" + sheetName + "$] where 1=1";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataAdapter apt = new OleDbDataAdapter(cmd);
apt.Fill(dt);
dt.TableName = "Report";
}
catch (Exception ex)
{
dt = new DataTable();
}
finally
{
conn.Close();
}
return dt;
}
不是你代码的问题,受限于解析的驱动之类,即使单个点号是标题,也换被转成#号,,,,可以换些别的解析excel的驱动试试
excel的单元格的格式决定了内容的含义,比如说,No.是不是被当作数字列,而.成为了小数点。
建议用NPOI而不是OleDb读取excel,可以得到更精确的内容
提供你一个简单的方法
就是将Excel 列名改为中文名称
如NO. 改为 [编号] ,即可避免出现#符号的问题
我都是这样做的