C#使用OLEDB读取Excel问题

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. 改为 [编号] ,即可避免出现#符号的问题
我都是这样做的