读excel服务器端

我需要开发一个服务,并将其安装到一个w2003框中读取excel文件,然后处理其信息。 过程如下,用户将使用FTP上传excel文件,然后我的服务必须采取这些文件,validation,然后更新SQL Server数据库。

该应用程序在我的计算机上运行正常,但在服务器上请求库,但是当我尝试安装MS Office 2003主互操作程序集时,系统显示“请在安装产品之前安装Microsoft Office 2003”。

我宁愿远离任何服务器升级,因为我们应该要求确定等等。所以,有没有一个简单的方法来读取Excel文件,而无需在服务器上安装任何更新。

任何意见,欢迎。

谢谢,m0dest0。

PS。 使用vb.net和vs 2008。

在服务器上使用Interop不受MS支持 – 请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

由于Windows Vista MS引入了一些安全相关的措施,防止Windows服务“做类似桌面”的事情…这意味着你将不得不规避一些安全措施,以使其工作(不推荐!)。

要在服务器场景中处理Excel,有几个选项(免费和商业):

我可以推荐Aspose.Cells和Flexcel …没有尝试SpreadsheetGear,但听到很多关于它的好东西…

免费选项(尽pipe只适用于较新的xlsx格式!)例如来自MS和EPPlus的 OpenXML 2 。

对于没有安装任何最新版本的Windows Server的解决scheme…..我不确定确切的VB.NET代码,但你应该很容易能够在任何使用Microsoft OLEDB驱动程序可以在任何最新版本的Windows服务器上使用,也可以从微软网站免费下载,安装非常旧版本的Windows服务器。 我将尝试伪代码,所以你将不得不适应它的VB.NET。 请注意,为了按名称引用字段,工作表中选定区域的第一行必须包含列值中的字段名称。 否则,您只需使用数字值来按列位置对每个返回的字段进行索引。

Set objExcelConnection = CreateObject("ADODB.Connection") objExcelConnection.Provider = "Microsoft.Jet.OLEDB.4.0" objExcelConnection.ConnectionString = "Data Source=d:\path\to\excel\file\on\your\server.xls;Extended Properties=""Excel 8.0;IMEX=1;"";" objExcelConnection.CursorLocation = 3 objExcelConnection.Open sSQL = "select * from [worksheetname$]" set rsWorksheet = objExcelConnection.Execute(sSQL) do while not rsWorksheet.Eof sValue = rsWorksheet("FieldName") rsWorksheet.MoveNext loop rsWorksheet.Close set objExcelConnection = nothing 

当我需要处理Excel文件时,我使用Excel Data Reader(http://exceldatareader.codeplex.com/)。 它可以毫无困难地处理xls和xlsx文件,而且我已经在服务器操作系统上的几个应用程序中运行它。 它将每个工作表保存为一个DataTable对象,并且DataTable中的每个“单元”对应于具有相同地址的Excel单元。 根据您如何设置SQL Server链接,可能不需要太多转换将内容转储到数据库中。

Interesting Posts