读取服务器上的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格式。
如果该应用程序是WEB应用程序,其中实际上示出局部数据经由的网络浏览器客户端上的应用程序:见本MS链路:http://support.microsoft.com/kb/162059。这里您实际上是将xls文件/流发送到客户端。
如果你是显示其Web应用程序,并显示网页,所呈现的内容发送给客户,那么你需要Excel Services服务器(我认为这是SharePoint家族的一部分),或在数据第三方AS.NET控制准备.XLS信息并将其呈现在页面中。
如果应用程序是一个在独立应用程序中显示excel数据的桌面应用程序,其中用户以桌面用户身份登录服务器,则需要在服务器上安装Excel。或者您需要第三方.NET控制(取决于应用程序技术WinForms,WFP/Silverlight等),它可以读取.XLS信息并呈现它。
如果应用程序在虚拟桌面上运行,说喜欢思杰,那么它同样为3
如果你正在做的是通过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