用NPOI读取Excle2003时 HSSFWorkbook wk = new HSSFWorkbook(fs); 初始化WorkBook时报block[2] already removed 错误,如何解决?google了一下,参照java的一些建议说修改Excel文件的权限,设置过后,一样无效。初始化fs时用的是全路径。急!NPOI版本2.1.1。VS2013、.NET 4.0、windows7.
另外,Excel第一行是标题,第一列的标题是“时间\科目”,用OleDb第一列没有读出来,不知道是什么问题,后来就改用NPOI,也出了问题!
方案推荐指数:20
读取excel,我还是建议用oledb,虽然有些问题,包括某些标题读不出(通常是合并单元格),数据类型会搞错,顺序会和excel中不一样,但好歹只要格式对,基本能读出来,且格式不变,问题也比较稳定。
比如你读不出的这列列头一般来说会变成F1,还是能够用的。
NPOI我主要是写excel才用,比oledb快,且方便,且有更多的可控制项。
方案推荐指数:20
如果只是读取应该不会这样,是不是文件处于打开或写状态?
方案推荐指数:20
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test1.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"""; OleDbConnection conn = new OleDbConnection(strConn); string strExcel = ""; DataSet ds = new DataSet(); strExcel = "select * from [sheet1$]"; OleDbDataAdapter da = new OleDbDataAdapter(strExcel, strConn); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string s = ds.Tables[0].Rows[i][0].ToString();//读取第一列值 }
方案推荐指数:20
Excel有很多原因导致读取不到数据,曾经遇到好几次,把Excel里面的内容重新复制到新Excel里面就可以读取了
方案推荐指数:20
http://download.csdn.net/detail/diaodiaop/7611721
应该不是权限的问题.. 看是否是版本的问题.
上面的读取没问题 建议下载下来看看读取你的xls看是否保存