将excel转换为xml
本文关键字:xml 转换 excel | 更新日期: 2023-09-27 18:04:29
我有一个网站(转换excel到xml)。当我在我的机器上运行一切正常。但是当我通过IIS运行我的网站。它有问题:对象引用没有设置为对象的实例。
下面是我的代码:string filename = Server.MapPath("~/Uploads/" + Request.QueryString["Name"]);
string[] sheet = _ReadExcel.getSheetNames(filename);
for (int i = 0; i < sheet.Length; i++)
{
}
Exception Details: System。NullReferenceException:对象引用没有设置为对象的实例。
请给我建议一些解决办法。由于
您需要在调用sheet之前将sheet设置为对象。长度
// Connect to Excel files
System.Data.OleDb.OleDbConnection MyConnection ;
System.Data.DataSet ds ;
System.Data.OleDb.OleDbDataAdapter MyCommand ;
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:''18.xls';Extended Properties=Excel 8.0;");
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
MyCommand.TableMappings.Add("Table", "Product");
ds = new System.Data.DataSet();
MyCommand.Fill(ds);
MyConnection.Close();
// Write to xml
ds.WriteXml("Product.xml");
参考从XML生成Excel和从Excel生成XML
您需要检查filename
是否有正确的路径到您的excel文件。
,如果路径是正确的。您需要向NETWORK SERVICE帐户授予您试图读取或写入的文件夹的权限。
不确定_ReadExcel.getSheetNames
方法内部是什么,但它返回'null'值到您的'filename'输入。您需要通过在visual studio中附加IIS进程来调试应用程序。然后在IIS上运行时就可以找到问题。
调试IIS的步骤:
- 调试->附加到进程
- 从列表中选择aspnet_wp.exe进程
- 如果你运行的是IIS> 5版本,这个进程将是w3wp.exe,并且每个应用程序池都会有一个(所以如果你不知道你击中了哪个应用程序池,你需要附加到所有它们)