大神们,小弟在用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,也出了问题,烦请大神帮忙,不胜感激!!!
------解决思路----------------------
读取excel,我还是建议用oledb,虽然有些问题,包括某些标题读不出(通常是合并单元格),数据类型会搞错,顺序会和excel中不一样,但好歹只要格式对,基本能读出来,且格式不变,问题也比较稳定。
比如你读不出的这列列头一般来说会变成F1,还是能够用的。
NPOI我主要是写excel才用,比oledb快,且方便,且有更多的可控制项。
------解决思路----------------------
如果只是读取应该不会这样,是不是文件处于打开或写状态?
------解决思路----------------------
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();//读取第一列值
}
------解决思路----------------------
Excel有很多原因导致读取不到数据,曾经遇到好几次,把Excel里面的内容重新复制到新Excel里面就可以读取了
------解决思路----------------------
http://download.csdn.net/detail/diaodiaop/7611721
一般来说应该不是权限的问题.. 看是否是版本的问题.
上面的读取没问题 建议LZ下载下来看看读取你的xls看是否保存..