读取服务器上的Excel文件

我有asp.net应用程序加载excel文件来读取。它在我的本地开发服务器上正常工作。但是,当我上传到服务器它不会显示上传的Excel文件。 我的MS Office安装在本地机器上,但没有安装在服务器上。 感谢您的指导读取服务器上的Excel文件

我使用的代码是...

if (fileExtension == ".xls") 

{

connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";

}

else if (fileExtension == ".xlsx")

{

connectionString = "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 14.0;HDR=Yes;IMEX=2\"";

}

//Create OleDB Connection and OleDb Command

OleDbConnection con = new OleDbConnection(connectionString);

OleDbCommand cmd = new OleDbCommand();

cmd.CommandType = System.Data.CommandType.Text;

cmd.Connection = con;

OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd);

DataTable dtExcelRecords = new DataTable();

con.Open();

DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString();

cmd.CommandText = "SELECT * FROM [" + getExcelSheetName +"]";

dAdapter.SelectCommand = cmd;

dAdapter.Fill(dtExcelRecords);

con.Close();

GridView1.DataSource = dtExcelRecords;

GridView1.DataBind();

我不断收到错误

" The 'Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine." 

即使我安装了Access数据库,我可以看到ACE 14.0还是我不断收到此错误

回答:

根据Excel的功能需要,您需要在服务器或客户端或第三方控件上安装Excel, nd格式。

  1. 如果该应用程序是WEB应用程序,其中实际上示出局部数据经由的网络浏览器客户端上的应用程序:见本MS链路:http://support.microsoft.com/kb/162059。这里您实际上是将xls文件/流发送到客户端。

  2. 如果你是显示其Web应用程序,并显示网页,所呈现的内容发送给客户,那么你需要Excel Services服务器(我认为这是SharePoint家族的一部分),或在数据第三方AS.NET控制准备.XLS信息并将其呈现在页面中。

  3. 如果应用程序是一个在独立应用程序中显示excel数据的桌面应用程序,其中用户以桌面用户身份登录服务器,则需要在服务器上安装Excel。或者您需要第三方.NET控制(取决于应用程序技术WinForms,WFP/Silverlight等),它可以读取.XLS信息并呈现它。

  4. 如果应用程序在虚拟桌面上运行,说喜欢思杰,那么它同样为3

  5. 如果你正在做的是通过OLEDB读取文件,然后用数据工作在excel之外,那么你可以免费安装Access Connectivity Engine。这基本上是需要在需要“仅限服务”包(或者如果您愿意的情况下)读取各种Office数据的组件。我不这样做,如果允许在单元级别的随机访问,但我知道它确实允许您通过.XLS文件运行OLEDB查询。我们用于将.XLS文件加载到数据库中。

所有这些都带有不同的许可限制和成本。没有任何用例,我可以建议的是,您认为Excel是一组粗糙的应用程序组件,要使用它们,您需要准确理解应用程序和它们的功能/交互方式,以及它们在任何特定您设想的部署场景。

编辑: 更多信息:如果您在64服务器上运行,并且使用的是32位应用程序,然后我可以王牌工作的唯一方法是安装ACE 2007年而不是2010年版

回答:

如果你只是需要阅读文件内容,你可以使用Csv格式,我认为这将是最简单的方式,你可以读取你的服务器中的Excel文件。你可以'保存为'一个excel文件到* .csv中。CSV文件只不过是一个文本文件至极是这样写的多个(逗号分隔):

“列1”,“列2”,“栏3”

所以现在你只需要做的就是阅读文本文件。

CVS Files

希望它可以帮助

以上是 读取服务器上的Excel文件 的全部内容, 来源链接: utcz.com/qa/262909.html

回到顶部