上图是excel截图,红色框框内的“q”不显示,页面上的效果如下图
代码是这样的:
public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GridView1.DataSource = importExcelToDataSet(AppDomain.CurrentDomain.BaseDirectory + "test/活动配置表.xlsx", "活动时间表"); GridView1.DataBind(); } public static System.Data.DataTable importExcelToDataSet(string FilePath, string TableName, string HDR = "YES") { string strConn; strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties='Excel 12.0;HDR=" + HDR + ";IMEX=1';"; OleDbConnection OleDbConn = new OleDbConnection(strConn); OleDbConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [" + TableName + "$]", OleDbConn); DataSet myDataSet = new DataSet(); try { myCommand.Fill(myDataSet); } catch (Exception ex) { throw new Exception("该Excel文件的工作表的名字不正确," + ex.Message); } OleDbConn.Close(); return myDataSet.Tables[0]; } }
设置一下单元格格式可以正常显示,但是我想在不设置的情况下能正常显示
npoi
你读取的Excel的单元格是数据类型有可能不是正确的数据类型,打个比方说吧。你excel里的一个单元格里的值是12345677889182 ,那么对于你接收的对象来说,这个是int类型呢?还是string类型呢。当它无法确认类型的时候它只能不显示出来了。当作没看到。没一列的数据类型应该是一样的。