繁体   English   中英

在IIS下通过asp.net(C#)从Excel转换为CSV

[英]Convert from Excel to CSV via asp.net (C#) under IIS

我有将xlsx转换为csv的简单过程。

public static void ConvertExcelToCsv(string source, string destination, int sheetNumber = 1)
{

    if (File.Exists(destination)) File.Delete(destination);

    Excel.Application xl = new Excel.Application();

    xl.DisplayAlerts = false;
    Excel.Workbook workbook = xl.Workbooks.Open(source);
    // workbook.Close(true);
    workbook.SaveAs(destination, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);
    object misValue = System.Reflection.Missing.Value;

    if (workbook != null)
    {
        workbook.Close(false, Type.Missing, Type.Missing);
        xl.Workbooks.Close();
        Marshal.ReleaseComObject(workbook);
    }


    xl.Quit();
    GC.Collect();
    Marshal.FinalReleaseComObject(xl);
}

在我的本地计算机和本地IIS上,一切正常。 但是上传到Web服务器后似乎不起作用。 它所做的所有事情都要处理大约3分钟,然后超时。

我还允许组件中的权限

Services -> Computers -> My Computer -> DCOM Config -> Microsoft Excel Application -> IIS_IUSRS

并创建了桌面文件夹

C:\\Windows\\SysWOW64\\config\\systemprofile\\

也是32bit的:-)

所以现在,我不知道为什么它不起作用。 您对此有类似的经验吗,或者可以提供一些提示,请问我该怎么做。

您收到的确切错误是什么? 检查IIS日志和应用程序事件日志中的特定错误。

需要检查的几件事:

  1. 确保您的应用程序池的“启用32位应用程序”设置为True
  2. 如果尚未在Web服务器上安装Excel,则在发布站点时需要复制Interop程序集。 为此,将“复制本地”设置为True以引用Interop。
  3. 确保您的应用对sourcedestination引用的路径具有适当的权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM