Microsoft.Office.Interop.Excel.dll可以很轻松的实现各种excel操作,但是前提是电脑必须安装excel软件。
因此,在不安装excel软件的情况下,实现对excel文件的操作,只能另选它法。我用的是npoi开源代码。
但是有个问题,用npoi打开excel文件再保存,即使不进行写操作,当双击excel文件的时候出错:文件格式已被损坏。
找了很多资料都不能解决我的问题。
解决这个问题有两点:
1.版本要对。注意npoi对excel2003和excel2007以上的文件操作的类和函数不同(2003是HSSFWorkbook,2007以上是XSSFWorkbook);
2.npoi读取和保存excel文件的方式要对(基本读取操作都可以,保存的时候要考究一下)
读取示例如下:
private IWorkbook wk;
using (FileStream fs = new FileStream(m_strNPOIFilePath, FileMode.Open, FileAccess.Read))
{
wk = new XSSFWorkbook(fs);//获取所有sheet页:wk.NumberOfSheets
}
保存操作如下:(至少,我的只能这样保存,另存为)
FileStream sw = File.Create(m_strFileName);
wk.Write(sw);
sw.Close();