Невозможно создать файл Excel, когда приложение (asp.net) запускается из IIS - PullRequest
1 голос
/ 04 января 2012

Невозможно создать файл Excel по определенному пути, когда приложение запускается из IIS.Но он создается, когда код отлаживается с помощью Visual Studio 2008. Даже если я пробовал использовать абсолютный путь и использовать функцию server.mappath (), но в vain.Server выдает ошибку: HTTP 404. Вы ищете ресурс (или одиниз его зависимостей), возможно, был удален, было изменено его имя или временно недоступен.Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.Запрашиваемый 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);
        }

    }

1 Ответ

6 голосов
/ 04 января 2012

Использование Office Interop из серверных сценариев (IIS / ASP.NET / Windows Service ...) НЕ поддерживается MS - см. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

Другой момент заключается в том, что с момента появления Windows было несколько изменений, связанных с безопасностью, которые не позволяют выполнять какие-либо «настольные» операции (например, печать, запись в общий сетевой ресурс ...) из службы Windows ...

Альтернатива Interop:

Существует множество опций для чтения / редактирования / создания файлов Excel без Interop:

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 и т. Д. .

...