Есть так много способов сделать это, это действительно зависит от того, что вам удобнее делать и как вы хотите, чтобы решение было интегрировано в ваше окончательное решение.
Вот несколько подходов, которые я использую, чтобы датьВаши идеи о том, что можно сделать ...
Службы отчетов
Элемент управления очень легко интегрировать в существующее решение ASP.NET, безопасность основана на WindowsАутентификация, поэтому безопасность управляется в SQL Server / Active Directory.Обычно в своих небольших приложениях я использую олицетворение, чтобы отключить защиту и установить скрытые параметры отчета для управления отчетом.Отчеты создаются в BIDS / VS с использованием графического интерфейса и очень похожи на создание отчетов в Access.Элемент управления также поддерживает экспорт в множество различных форматов (PDF, XLS, DOC и т. Д.).
Редактирование файлов XLS без Excel
У меня естьпоследние несколько лет я пользуюсь NPOI , и это здорово, легко управлять / манипулировать документами XLS, такими как шаблоны.Вот пример создания шаблона в NPOI .
Пример
// Open Template
FileStream fs = new FileStream(Server.MapPath(@"\template\Template_EventBudget.xls"), FileMode.Open, FileAccess.Read);
// Load the template into a NPOI workbook
HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
// Load the sheet you are going to use as a template into NPOI
HSSFSheet sheet = templateWorkbook.GetSheet("Event Budget");
// Insert data into template
sheet.GetRow(1).GetCell(1).SetCellValue(EventName.Value); // Inserting a string value into Excel
sheet.GetRow(1).GetCell(5).SetCellValue(DateTime.Parse(EventDate.Value)); // Inserting a date value into Excel
sheet.GetRow(5).GetCell(2).SetCellValue(Double.Parse(Roomandhallfees.Value));
Direct XLS/ XLSX с OLE
Другое решение для работы напрямую с файлами XLS и XLSX - использование OleDbConnection, установленного с 2007 Системный драйвер Office .
Пример
using (
OleDbConnection con =
new OleDbConnection(
@"Provider=Microsoft.ACE.OLEDB.12.0; Extended Properties=Excel 12.0;Data Source=" + SourceFile +
@";Extended Properties=Excel 12.0;"))
{
con.Open();
string sql = String.Format("SELECT * FROM [{0}$]", sheetName);
OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
da.Fill(dt);
}
Использование SSIS для заполнения шаблона Excel
Все это делается в SQL Server,вывод может быть отправлен по почте или помещен в папку.Я использую этот подход, если мне нужно автоматизировать отправку определенных файлов Excel с помощью специального форматирования / формул / и т. Д. ... Это настройка с помощью BIDS / VS в пакете служб SSIS.Вы создадите поток данных с помощью Адресата Excel .У этого подхода есть некоторые ограничения, используйте ссылку для получения подробной информации.
Опять же, правильное решение будет основано на ваших потребностях ... Также принимайте во внимание обслуживание, поскольку конечные потребители отчетов, кажется, всегданужны изменения / обновления, внесенные в отчеты !!!