将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:对象引用没有设置为对象的实例。

请给我建议一些解决办法。由于

将excel转换为xml

您需要在调用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,并且每个应用程序池都会有一个(所以如果你不知道你击中了哪个应用程序池,你需要附加到所有它们)