2015-09-07 2 views
0

У меня есть приложение для веб-форм C#, и я хочу экспортировать содержимое gridview для Excel с использованием Open XML SDK 2.5. Это работает отлично, когда я запускаю в localhost, но не работает, когда я перемещаю свое приложение на веб-сервер UAT, и я не получаю ошибки. Я считаю, что это ошибка, но не уверен. Спасибо,Открыть SDK Не удается открыть файл Excel при работе на веб-сервере, но работает в localhost

DocumentFormat.OpenXml.Packaging.SpreadsheetDocument spreadsheet; 
     DocumentFormat.OpenXml.Spreadsheet.Worksheet worksheet; 
     System.IO.StreamReader styleXmlReader; 
     string styleXml; 

     spreadsheet = Excel.CreateWorkbook(workbookName); 
     if (spreadsheet == null) 
     { 
      return; 
     } 

     if (createStylesInCode) 
     { 
      Excel.AddBasicStyles(spreadsheet); 
     } 
     else 
     { 
      using (styleXmlReader = new  
    System.IO.StreamReader("PredefinedStyles.xml")) 
      { 
       styleXml = styleXmlReader.ReadToEnd(); 
       Excel.AddPredefinedStyles(spreadsheet, styleXml); 
      } 
     } 

     Excel.AddSharedString(spreadsheet, "Shared string"); 
     Excel.AddWorksheet(spreadsheet, "Test 1"); 
     Excel.AddWorksheet(spreadsheet, "Test 2"); 
     worksheet = 
spreadsheet.WorkbookPart.WorksheetParts.First().Worksheet; 

     // Headings 
     Excel.SetCellValue(spreadsheet, worksheet, 1, 1, "QMS Area", 
true); 
     Excel.SetCellValue(spreadsheet, worksheet, 2, 1, "Division 
Owner", true); 
     Excel.SetCellValue(spreadsheet, worksheet, 3, 1, "Relevant 
Divisions", true); 
     Excel.SetCellValue(spreadsheet, worksheet, 4, 1, "Audit Team", 
true); 
     Excel.SetCellValue(spreadsheet, worksheet, 5, 1, "Audit Date", 
true); 


     int _rowCount = 2; 
     foreach (var audit in _auditDetails) 
     { 
      // Set Values 
      Excel.SetCellValue(spreadsheet, worksheet, 1, 
(uint)_rowCount, audit.QmsArea, true); 
      Excel.SetCellValue(spreadsheet, worksheet, 2, 
(uint)_rowCount, audit.DivisionOwner ?? "", true); 
      Excel.SetCellValue(spreadsheet, worksheet, 3, 
(uint)_rowCount, audit.RelevantDivision ?? "", true); 
      Excel.SetCellValue(spreadsheet, worksheet, 4, 
(uint)_rowCount, audit.AuditTeam ?? "", true); 
      Excel.SetCellValue(spreadsheet, worksheet, 5, 
(uint)_rowCount, audit.AuditDate.ToString() ?? "", true);    
      _rowCount++; 
     } 



     // Set column widths 
     Excel.SetColumnWidth(worksheet, 1, 15); 
     Excel.SetColumnWidth(worksheet, 2, 20); 

     worksheet.Save(); 
     spreadsheet.Close(); 


     System.Diagnostics.Process.Start(workbookName); 

ответ

0

Я бы проверял права доступа к папке на сервере, где сохраняются файлы excel. Вы должны убедиться, что ваше веб-приложение имеет права на чтение/запись для этой папки.

Тот факт, что он работает на вашей локальной машине, но не в среде размещения, заставляет меня думать, что разрешения на папку могут быть проблемой.

+0

yes Я заметил, что файл сохраняется в C: \ Windows \ System32 \ inetsrv, но я дал полные разрешения для файла excel в этой папке и его все еще не работает. – DeadlyDan

+0

Вы предоставили полные разрешения папке, в которой находится файл? – Wellspring

Смежные вопросы