Вопрос

В .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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top