Альтернатива Excel в качестве генератора отчетов ASP.Net - PullRequest
3 голосов
/ 19 октября 2010

Я использую Excel через vb.net/asp.net для генерации отчетов с веб-страницы, а затем отправляю файл пользователю.У нас были некоторые проблемы с тем, что Excel был очень медленным / неэффективным / не закрывающимся (даже когда мы отслеживаем идентификатор процесса и пытаемся уничтожить его в коде ...).Поэтому я ищу несколько гибких альтернатив.Нам нужна замена, которая может:

  • Разрешить внутреннее форматирование ячеек, включая границы (различные настройки на каждой стороне), цвета фона, стили шрифта / цвета и т. Д. *
  • Разрешитьдля слияния ячеек
  • Позволяет форматировать (в данном случае жирным шрифтом) часть текста внутри ячейки, оставляя остальной текст неизменным
  • Вставка / изменение положения изображения внутри ячейки (не имеет значения)
  • Несколько рабочих листов на рабочую книгу

Это все функции, которые я могу придумать из рук в руки, любая помощь или предложение по альтернативным библиотекам будет оценено.Мы запускаем Excel 2007 на сервере, но развертываем Office 2010 для клиентов, поэтому я думаю, что это может открыть двери для некоторых других поддерживаемых форматов файлов, если это поможет.

Ответы [ 5 ]

1 голос
/ 09 ноября 2010

После просмотра различных вариантов и проведения более независимых исследований я в конечном итоге использовал EPPlus, который можно получить @ http://epplus.codeplex.com.

Спасибо за все предложения.

1 голос
/ 19 октября 2010

Я рекомендую вам использовать DevExpress.XtraReports из DevExpress .Это лицензионный продукт, но он предлагает вам удобный инструментарий для создания великолепных и сложных отчетов.Он хорошо документирован и прост в использовании: после определения шаблона (REPX) его можно заполнить данными, присваивая каждому элементу значение, а также используя функцию [mail merge] , которая будет автоматически замененакак только вы связываете с данными отчет.В основе такой технологии лежит хорошо оформленный дизайн классов.После создания отчета вы можете экспортировать его в наиболее распространенные форматы: XLS, HTML, PDF, RTF ...

public void GenerateReportFile(string rptFileName, string param1, int param2)
{
    XtraReport report = null;
    try
    {
        report = new XtraReport();
        //-- loads the layout template (repx file)
        report.LoadLayout("SomeDirectory\report_template.repx");
        //-- assign data to report controls
        report.FindControl("Label1", true).Text = string.Format("{0:dd/MM/yyyy}", fecha1);
        report.FindControl("Label2", true).Text = string.Format("{0:dd/MM/yyyy}", fecha1);
        //-- gets data from some Data Acces Layer method and assig it to the report DataSource property
        DALReport dal = new DALReport();
        report.DataSource = dal.GetReport1Data(ExpEmp, param1, param2);
        report.DataMember = "data";
        report.ExportToPdf(rptFileName, options);
    }
    catch { throw; }
    finally { if (report != null) { report.Dispose(); } report = null; }
}

Для получения дополнительной информации обратитесь к: http://demos.devexpress.com/XtraReportsDemos/

Существует еще одна бесплатная библиотека для .Net iTextSharp , эта библиотека изначально была написана для Java, а затем была переведена на C # для использования .Net.Библиотека в основном предназначена для создания документов PDF, но некоторые версии также поддерживают создание документов XLS.

0 голосов
/ 19 октября 2010

Похоже, вы используете библиотеку, которая открывает Excel и использует объекты MS Office Excel для создания файла Excel. Поскольку вы используете 2007 и более поздние версии, вы можете рассмотреть возможность создания файла Excel вручную с использованием библиотеки, которая создает XML (поэтому Excel вообще не открывается).

Выезд ExcelLibrary .

Во время поиска по этому вопросу я обнаружил эту страницу (в StackOverflow) , которая предоставляет некоторый пример кода.

0 голосов
/ 19 октября 2010

Веб-компоненты Office (хотя и устаревшие) бесплатны и работали для меня в прошлом.

Если вы хотите потратить добычу, Aspose Cells - хороший способ пойти.

0 голосов
/ 19 октября 2010

График GNU немного трудновато для запуска на Windows, но это потрясающий инструмент

...