Совместимость Excel 2003-2010 библиотеки автоматизации C # в веб-приложении - PullRequest
1 голос
/ 24 ноября 2011

Я только что закончил писать код для модуля отчетов, который экспортирует данные в Excel, и понял, что библиотека, которую я использовал Библиотека Excel не поддерживает Excel 2007-2010 и многие другие дополнительные критические проблемы, такие как шрифты, шаблонынапечатайте страницу горизонтально, а не вертикально, и похоже, что библиотека не поддерживается годами.Другие библиотеки поддерживают 2007, но не поддерживают 2003. Какая библиотека поддерживает все версии 2003+?и имеет простой и богатый API

. Библиотека Microsoft COM не поддерживает веб-приложения, о чем предупреждает Microsoft. В итоге:

"В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию Microsoft Office.приложения из любого автоматического неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), так как Office может демонстрировать нестабильное поведение и / или тупиковую блокировку при запуске Office в этой среде. "

Мое приложение - asp.net mvc3 с .NET 4, поэтому у меня огромная проблема.Я искал в интернете несколько дней, и все сообщали об одной и той же проблеме, и никто никогда не сообщал, что он нашел достойное решение

Может быть, вы нашли такое?


Обновление прогресса: @cdiazal предложил 'EPPlus', я проверил , и они говорят, что не поддерживают 2003 год. Кто-нибудь еще?

Ответы [ 3 ]

1 голос
/ 26 ноября 2011

Я никогда не использовал его, но многие другие ссылаются на Aspose.Cells для .NET

0 голосов
/ 28 ноября 2011

Только что нашел одну библиотеку, которая выглядит красиво, но она не бесплатна

Библиотека Infragistics .

0 голосов
/ 24 ноября 2011

Вы можете использовать EPPlus

Но он создает только XLSx Файлы

Вы можете открыть его из Excel 2003, если вы установили пакет совместимости.

В разделе обсуждения Я нашел этот код для сохранения в формате XLS

ExcelPackage pck = new ExcelPackage();
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
FileStream aFile = new FileStream("c:\\data\\excelfile.xls", FileMode.Create);
byte[] byData = pck.GetAsByteArray();
aFile.Seek(0, SeekOrigin.Begin);
aFile.Write(byData, 0, byData.Length);
aFile.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...