Мне нужно создать файл excel для пользователя, нажав кнопку щелчка. Я использовал Netoffice, перед которым отлично работала для настольных приложений. Но теперь я хочу сделать то же самое с приложением asp.net. Таким образом, у моего кода сервера нет доступа к копии Excel. Какой подход я должен принять?Создать книгу Excel в asp.net
ответ
Использование EPPlus. Он позволяет создавать таблицы Excel на сервере. Я использовал его, и он отлично работал. Он поддерживает расширенные функции.
using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
//Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
ws.Cells["A1"].LoadFromDataTable(tbl, true);
//Format the header for column 1-3
using (ExcelRange rng = ws.Cells["A1:C1"])
{
rng.Style.Font.Bold = true;
rng.Style.Fill.PatternType = ExcelFillStyle.Solid;
//Set Pattern for the background to Solid
rng.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(79, 129, 189));
//Set color to dark blue
rng.Style.Font.Color.SetColor(Color.White);
}
//Example how to Format Column 1 as numeric
using (ExcelRange col = ws.Cells[2, 1, 2 + tbl.Rows.Count, 1])
{
col.Style.Numberformat.Format = "#,##0.00";
col.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
}
//Write it back to the client
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=file.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(pck.GetAsByteArray());
Response.End();
}
Выглядит круто. Хотя я не могу найти пример о том, как создать книгу и загрузить ее клиенту без сохранения на сервер? Вы знаете простой способ сделать это? – user194076
Я добавил код, который показывает создание книги с электронной таблицей и ее запись клиенту. –
Большое вам спасибо! – user194076
Вы можете попробовать простую таблицу HTML (inlcude html, head и body tags). Просто сохраните его с расширением XLS.
Нет, мне нужен какой-то комплекс первенствует манипуляций. netoffice будет работать отлично, но я не понимаю, почему он не может работать с asp.net. – user194076
Наиболее гибким и, вероятно, делать именно то, что вам нужно будет взять какую-то работу, но это бесплатно - и действительно работает. Используйте инструментарий для просмотра существующих документов, чтобы узнать, как создавать нужные функции.
Netoffice требует, чтобы MS Office выполнял машину. У вашего сервера есть это?
Вы можете использовать DataGrid для создания файлов Excel на лету. Это не требует Excel.
public static void ExportDataSetToExcel(DataSet ds, string filename)
{
HttpResponse response = HttpContext.Current.Response;
// first let's clean up the response.object
response.Clear();
response.Charset = "";
// set the response mime type for excel
response.ContentType = "application/vnd.ms-excel";
response.AddHeader(
"Content-Disposition",
"attachment;filename=\"" + filename + "\""
);
// create a string writer
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// instantiate a datagrid
DataGrid dg = new DataGrid();
dg.DataSource = ds.Tables[0];
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
dg.Dispose();
ds.Dispose();
response.End();
}
}
}
Это решение возвращает ** HTML ** клиенту, но заявляет, что это фактически файл ** Excel **. Проблема заключается в том, что Excel находится на вашем маленьком обмане и выдает предупреждение пользователю, объясняющему, что кто-то пытается лгать им. –
- 1. Создать книгу Excel в системе x64
- 2. создать новую книгу от выбора в excel
- 3. Как создать специальную книгу Excel Невидимый
- 4. Добавление листа в книгу Excel
- 5. Включить книгу Excel в надстройку Excel VSTO
- 6. Excel Создать новую книгу в динамическом каталоге Путь
- 7. Могу ли я создать книгу Excel внутри foreach в perl?
- 8. Как написать книгу Excel в memoryStream?
- 9. Просмотреть книгу excel и открыть, затем использовать книгу в коде
- 10. Как создать Распределенную книгу
- 11. C# Excel Addin - Получить активную книгу excel
- 12. Как читать книгу Excel (pandas)
- 13. Excel: запретить открывать внешнюю книгу?
- 14. Что открыло мою книгу Excel?
- 15. Excel - таймер, чтобы закрыть книгу
- 16. Spreadsheet камень: не может создать пустую книгу
- 17. создать сетку, как excel в asp.net MVC5
- 18. Как создать файл Excel в asp.net
- 19. Объединить несколько книг Excel в одну книгу
- 20. Excel VBA скопировать столбец в существующую книгу
- 21. Закройте книгу, если в Excel нет активности
- 22. Передача данных в книгу VSTO Excel?
- 23. Импортировать книгу Excel в базу данных Mysql
- 24. Как импортировать данные Excel в новую книгу?
- 25. Powershell Несколько SQL-запросов в книгу Excel
- 26. VBA Excel: вернуть родительскую книгу в диапазоне
- 27. «Заблокировать» книгу Excel для VSTO в C#
- 28. вывод нескольких наборов данных в книгу excel
- 29. Невозможно добавить диаграмму в рабочую книгу Excel
- 30. заполнять книгу excel с точки зрения
Выглядит очень похоже http://stackoverflow.com/questions/150339/generating-an-excel-file-in-asp-net – Mathias