Сохранение документов Excel 2007
-
05-07-2019 - |
Вопрос
В .NET C # я пытаюсь открыть шаблон Excel, добавить некоторые данные и сохранить их как новый документ.Я пытаюсь использовать формат документа OpenXML.Кажется, я не могу найти никаких указаний о том, как это сделать.Похоже, что во всей документации говорится о том, как записывать различные части в пакет, но я не могу найти ничего о том, что делать, когда вы закончите и захотите сохранить это.
Кто-нибудь знает, где я могу найти эту информацию?Должно быть, я думаю об этом неправильно, потому что я не нахожу ничего полезного в том, что кажется очень простым.
Спасибо
Решение
Превосходная упаковка работает для этого довольно хорошо.Я не думаю, что основной автор работал над ним какое-то время, но у него есть хорошие подписчики на форуме, которые решают любые проблемы.
FileInfo template = new FileInfo(Path.GetDirectoryName(Application.ExecutablePath)+"\\Template.xlsx");
try
{
using (ExcelPackage xlPackage = new ExcelPackage(strFileName,template))
{
//Enable DEBUG mode to create the xl folder (equlivant to expanding a xlsx.zip file)
//xlPackage.DebugMode = true;
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Sheet1"];
worksheet.Name = WorkSheetName;
foreach (DataRow row in dt.Rows)
{
int c = 1;
if (r > startRow) worksheet.InsertRow(r);
// our query has the columns in the right order, so simply
// iterate through the columns
foreach (DataColumn col in dt.Columns)
{
if (row[col].ToString() != null)
{
worksheet.Cell(r, c).Value = colValue;
worksheet.Column(c).Width = 10;
}
c++;
}
r++;
}
// change the sheet view to show it in page layout mode
worksheet.View.PageLayoutView = false;
// save our new workbook and we are done!
xlPackage.Save();
xlPackage.Dispose();
}
}
Другие советы
Доступ к документам Open XML / SpreadsheetML - далеко не тривиальное упражнение.Спецификация большая и сложная."Open XML SDK" (Google it) определенно помогает, но все еще требует некоторых знаний стандарта Open XML, чтобы многое сделать.
Устройство электронных таблиц для .NET имеет API, аналогичный Excel, и может читать и записывать документы Excel Open XML (xlsx), а также документы Excel 97-2003 (xls).
Вы можете посмотреть некоторые образцы электронных таблиц здесь и скачайте бесплатную пробную версию здесь.
Отказ от ответственности:Я владелец SpreadsheetGear LLC