我一直在使用该Microsoft.Office.Interop.Excel库打开Excel,刷新一些查询并保存.我遇到的问题是,只有当每台计算机都具有与PC上安装的项目中选择的Excel库相同的Excel库时,这才会起作用.
我看到NPOI可以http://npoi.codeplex.com/documentation读取和写入数据到Excel,但是开放/刷新/保存更简单的任务怎么样,NPOI可以处理这个吗?
如果您使用此语法,我似乎可以打开我的Excel文件,但刷新查询和保存呢?
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
private void button1_Click(object sender, EventArgs e)
{
HSSFWorkbook hssfwb;
using (FileStream file = new FileStream(@"c:\test.xls", FileMode.Open, FileAccess.Read))
{
hssfwb= new HSSFWorkbook(file);
}
Run Code Online (Sandbox Code Playgroud)
我假设您所说的“刷新查询”是指 Excel 文件链接到某个数据源,并且您希望使用该数据源中的当前数据更新 Excel 文件的内容。
如果您希望这是“自动”的(即您不编写代码来自己进行更新),那么我认为 Excel 是唯一的方法。我很确定像 NPOI(或 EPPlus,或 ClosedXML)之类的东西不会这样做。但是,如果您可以轻松查询数据源,您也许可以使用这些库自行将值插入到电子表格中。
由于您谈论的是多台计算机,因此我假设您正在构建一个加载项或一个部署到各个用户的 EXE。在这种情况下,您可能希望根据支持的最低 Excel 版本进行构建。换句话说,您希望在您的开发计算机上安装 Excel 2003 或 2007。(如果您可以放弃对 2003 年的支持,您的生活将会变得更加轻松)。
如果您针对 Excel 200x 进行构建,那么它应该在更高版本上运行良好。反之则不然。请注意,您不希望您的开发计算机上有多个版本。