Pre*_*rem 1 c# asp.net iis excel-interop
从IIS运行应用程序时,无法在特定路径上创建Excel文件.但它是在使用visual studio 2008进行代码时创建的.即使我尝试使用绝对路径并使用server.mappath()函数但是在虚荣.服务器抛出错误:HTTP 404.您正在寻找的资源(或者一个其依赖关系)可能已被删除,名称已更改,或暂时不可用.请查看以下网址,确保拼写正确.请求的URL:/Error.aspx
代码如下:
private void CreateExcel(DataTable dt)
{
try
{
FilePath = "\\\\192.168.1.252\\GNC Reports\\TallyExport.xls";
Excel.Application oXL = new Excel.Application();
//Get a new workbook.
Excel._Workbook oWB = (Excel._Workbook)(oXL.Workbooks.Add(Type.Missing));
// *************** Sheet 1
Excel._Worksheet oSheet = (Excel._Worksheet)oWB.Sheets["Sheet1"];
oSheet.Name = "Journal";
WriteWxcel(oSheet, dt, 3);
//***************** Sheet 2
oSheet = (Excel._Worksheet)oWB.Sheets["Sheet2"];
oSheet.Name = "Payroll";
WriteWxcel(oSheet, dt, 4);
// ************* Sheet 3
oSheet = (Excel._Worksheet)oWB.Sheets["Sheet3"];
oSheet.Name = "Receipt";
WriteWxcel(oSheet, dt, 2);
//Save Excel File
oWB.SaveAs(FilePath, Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
oXL.Quit();
}
catch (Exception ex)
{
BussinessLayer.CMSException.Instance.HandleMe(this, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
MS不支持在类似服务器的情况下使用Office Interop(IIS/ASP.NET/Windows服务...)- 请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US; q257757#KB2
另一点是,自从windows vista出现了一些与安全相关的更改,这些更改阻止从Windows服务执行任何"类似桌面"的操作(例如打印,写入网络共享......)...
Interop的替代方案:
在没有Interop的情况下,有许多选项可以读取/编辑/创建Excel文件:
MS提供免费的OpenXML SDK V 2.0 - 请参阅http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx(仅限XLSX)
这可以读取+写入MS Office文件(包括Excel).
另一个免费选项见http://www.codeproject.com/KB/office/OpenXML.aspx(仅限XLSX)
如果你需要更多像处理旧的Excel版本(如XLS,不仅仅是XLSX),渲染,创建PDF,公式等,那么有不同的免费和商业库,如ClosedXML(免费,仅限XLSX),EPPlus(免费,仅限XLSX) ,Aspose.Cells,SpreadsheetGear,LibXL和Flexcel等.
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |