Экспорт C в Excel
Обновлено: 21.11.2024
В нескольких компаниях, где я работал, экспорт таблиц SQL Server в файлы Excel был обычной практикой по разным причинам. Одна из причин заключается в том, что использование данных в Excel удобно для людей, не обладающих необходимыми навыками работы с T-SQL или нуждающихся в функциях, предлагаемых Excel. В этой статье рассказывается, как можно экспортировать данные из таблицы SQL Server в файл Excel.
Решение
Создать файл Excel из таблицы SQL
Для этого примера я буду экспортировать данные из таблицы авторов в файл Excel.
Первый шаг — создать файл Excel.
При работе с Excel нам потребуется следующее пространство имен:
Файл Excel будет создан на рабочем столе. Если существует предыдущий файл с таким же именем, он сначала будет удален, а затем будет создан новый файл.
Мы создаем файл Excel, используя следующий код:
Для этого файла мы сначала создаем заголовок. Заголовок — это одна строка, которая описывает содержимое файла, отображаемое другим цветом, и для каждого столбца таблицы у нас будет имя столбца в качестве заголовка столбца в файле Excel. Вы можете выбрать что-то другое в соответствии с вашими потребностями.
Как видите, "общий" заголовок не помещается в столбце А (он слишком длинный), и мы не хотим увеличивать столбец А, чтобы он поместился. Я решил объединить несколько ячеек из первой строки, чтобы заголовок охватывал эти ячейки.
Следующий шаг – экспорт таблицы в файл Excel. Это можно сделать с помощью следующего кода:
В цикле for мы заполняем заголовки столбцов в файле Excel и экспортируем данные.
Поскольку некоторые данные в одном и том же столбце могут быть шире других (это обычно происходит с текстовыми ячейками), мы установим свойства каждого столбца таким образом, чтобы он автоматически помещался в самую большую ячейку в каждом столбце:
Последний шаг — сохранить файл Excel и освободить ресурсы, которые использует объект Excel:
В конце мы можем спросить пользователя, хотят ли они увидеть файл Excel:
Загрузить файлы проекта
Экспорт данных в Excel позволяет визуализировать данные в более понятном виде. Эта функция помогает создавать финансовые отчеты, банковские отчеты и счета, а также поддерживает фильтрацию больших данных, проверку данных, форматирование данных и т. д.
Для экспорта данных в Excel Essential xlsio предоставляет следующие методы:
- Экспорт таблицы данных в Excel
- Экспорт коллекции объектов в Excel
- Экспорт базы данных в Excel
- Экспорт элементов управления Microsoft Grid в Excel
- Экспорт массива в Excel
- Экспорт CSV в Excel
В этой статье мы рассмотрим эти методы и способы их реализации.
Экспорт таблицы данных в Excel
Экспорт таблицы данных на лист Excel можно выполнить с помощью метода importdatatable. В следующем примере кода показано, как экспортировать таблицу сведений о сотруднике на лист Excel.
Экспорт таблицы в Excel
При экспорте больших данных в Excel, если вам не нужно применять числовой формат и стиль, вы можете установить для параметра importonsave значение true и перегрузить его с помощью метода importdatatable. В настоящее время экспорт данных и сохранение файла Excel выполняются одновременно.
Используйте этот метод для экспорта высокопроизводительных больших данных.
Если у вас есть указанный диапазон и вы хотите экспортировать данные из определенных строк и столбцов в указанном диапазоне в указанный диапазон, вы можете использовать следующий API, где rowoffset и columnoffset — это параметры, которые нужно импортировать из определенных ячеек в указанном диапазоне. диапазон.
Экспорт коллекции объектов в Excel
Экспорт данных из коллекции объектов на лист Excel – распространенный сценарий. Однако этот метод полезен, если вам нужно экспортировать данные из шаблона на лист Excel.
Библиотека syncfusion excel (xlsio) поддерживает экспорт данных из коллекции объектов на лист Excel.
Мы можем экспортировать данные из коллекции объектов на рабочий лист Excel с помощью метода importdata. В следующем примере кода показано, как экспортировать данные из коллекции на лист Excel.
Экспорт коллекции объектов в Excel
Экспорт базы данных в Excel
Excel поддерживает создание таблиц Excel из разных баз данных. Если вам нужно использовать Excel для создания одной или нескольких таблиц Excel из базы данных, вам нужно установить соединения одно за другим, чтобы создать их. Это может занять много времени. Итак, если вы можете найти альтернативный способ быстрого и простого создания таблиц Excel из базы данных, разве это не предпочтительный метод?
Библиотека Syncfusion excel (xlsio) может экспортировать данные из MS SQL, MS Access, Oracle и других баз данных в таблицы Excel. Вы можете экспортировать данные из базы данных в таблицу Excel, установив соединение между базой данных и приложением Excel.
Вы можете использовать метод refresh() для обновления измененных данных в таблице Excel, сопоставленной с базой данных.
Самое главное, вы можете обратиться к документации, чтобы создать таблицу из внешнего подключения, чтобы узнать, как экспортировать базу данных в таблицу Excel. В следующем примере кода показано, как экспортировать данные из базы данных в таблицу Excel.
Экспорт базы данных в таблицу Excel
Экспорт данных из DataGrid, GridView, DataGridView в Excel
Экспорт данных из элементов управления сеткой Microsoft в листы Excel помогает визуализировать данные различными способами. Вы можете часами перемещаться по ячейкам сетки по их данным и стилям, чтобы экспортировать их в рабочие листы Excel. Это должно быть хорошей новостью для тех, кому необходимо экспортировать данные из элементов управления сеткой Microsoft в рабочие листы Excel, поскольку экспорт с использованием библиотеки Excel syncfusion выполняется намного быстрее.
Библиотека syncfusion excel (xlsio) поддерживает экспорт данных из элементов управления сеткой Microsoft (таких как DataGrid, GridView и DataGridView) в таблицы Excel путем вызова API. Кроме того, вы можете экспортировать данные, используя заголовки и стили.
В следующем примере кода показано, как экспортировать данные из DataGridView на лист Excel.
Microsoft DataGridView для достижения успеха
Экспорт массива в Excel
Иногда может потребоваться вставить или изменить массив данных в существующие данные на листе Excel. В этом случае количество строк и столбцов известно заранее. Массивы полезны для фиксированных диапазонов.
Библиотека syncfusion excel (xlsio) поддерживает экспорт массивов данных в таблицы Excel как по горизонтали, так и по вертикали. Кроме того, вы можете экспортировать 2D-массивы.
Давайте рассмотрим сценарий "расходы на душу населения". Годовые расходы человека перечислены в листе Excel. В этом случае вам нужно создать новую строку, добавить стоимость нового пользователя Поля Погба и обновить стоимость всех отслеживаемых людей в декабре.
Данные Excel перед экспортом из массива
Можно экспортировать массивы данных в рабочие листы Excel с помощью метода importarray. В следующем примере кода показано, как экспортировать массив данных на лист Excel как по горизонтали, так и по вертикали.
Вывод массива данных в Excel
Экспорт CSV в Excel
Файлы со значениями, разделенными запятыми (CSV), помогают создавать табличные данные или упрощенные отчеты с меньшим количеством столбцов и большим количеством строк. Открытие этих файлов в формате Excel упрощает понимание данных.
Библиотека syncfusion excel (xlsio) поддерживает открытие и сохранение файлов CSV за считанные секунды. В следующем примере кода показано, как открыть файл CSV и сохранить его как файл xlsx. Самое главное, данные отображаются в виде таблицы в числовом формате.
Импорт файла CSV
Результаты преобразования CSV в Excel
резюме
Как видите, библиотека syncfusion excel (xlsio) предоставляет различные простые методы для C для экспорта данных в excel. Мы можем эффективно использовать их для создания высокопроизводительных отчетов Excel или обработки больших данных. Рекомендуется внимательно прочитать документацию, и вы найдете другие параметры и функции, а также все сопровождающие примеры кода. С помощью этой библиотеки данные Excel также можно экспортировать в PDF, изображение, таблицу данных, CSV, TSV, HTML, коллекцию объектов, формат файла ODS и т. д.
Это перевод CSDN. Пожалуйста, укажите источник перепечатки.
Выше приведено полное содержание этой статьи. Я надеюсь, что это поможет вам в вашем обучении, и я надеюсь, что вы можете больше поддержать разработчиков.
GemBox.Spreadsheet использует один и тот же API для всех форматов файлов электронных таблиц (XLS, XLSX, ODS, CSV), поэтому вы можете использовать один и тот же код для заполнения файлов клиентов или ваших шаблонов различных форматов файлов различными источниками данных, такими как Таблица данных или набор данных .
Экспорт DataTable в лист Excel
- ColumnHeaders — определяет, следует ли вставлять заголовки столбцов.
- StartRow и StartColumn — определяют позицию для вставки DataTable.
- DataTableCellToExcelCellConverting — событие, которое запускается при преобразовании значения ячейки DataTable в значение ExcelCell, которое можно использовать для применения таких параметров, как стиль ячейки.
Попробуйте экспортировать DataTable онлайн
Вы можете протестировать вставку DataTable в пустой файл с интерактивным примером ниже. Просто выберите формат выходного файла, нажмите «Выполнить пример» и загрузите сгенерированный файл.
Скриншот DataTable, экспортированного в лист Excel с помощью GemBox.Spreadsheet
Экспорт производительности DataTable
Экспорт набора данных в файл Excel
Этот процесс аналогичен экспорту DataTable на лист. Единственное отличие состоит в том, что вам нужно выполнить итерацию по каждой таблице данных в наборе данных, и для каждой таблицы данных вы должны сначала создать пустой лист, а затем вставить таблицу данных в лист.
Попробуйте экспортировать набор данных онлайн
Вы можете протестировать вставку DataSet в пустой файл с интерактивным примером ниже. Просто выберите формат выходного файла, нажмите «Выполнить пример» и загрузите сгенерированный файл.
Скриншот набора данных, экспортированного в файл Excel с помощью GemBox.Spreadsheet
Поддерживаемые форматы файлов Excel
С помощью GemBox.Spreadsheet вы также можете создавать файлы следующих форматов, используя тот же API: XLSX, XLS, PDF, HTML, MHTML, ODS, CSV, TXT, XLSM, XLTX, XLTM, XPS, PNG, JPEG, GIF, BMP, TIFF, WMP.
Хотите еще?
Проверьте следующий пример или выберите пример из меню. Вы также можете скачать наши примеры с GitHub.
Мы будем писать код и посмотрим, как мы можем добиться следующих результатов.
Инкапсулируйте логику генерации Excel внутри класса. Чтобы сделать код читаемым, мы позволим объединять методы в цепочки. Окончательный код потребления будет выглядеть так, как показано ниже.
Создание нескольких листов в книге Excel.
Автоматически устанавливать имена заголовков столбцов на основе имени свойства объекта.
Настройте название заголовка столбца.
Игнорировать заполнение определенных свойств в сгенерированном файле Excel.
Отформатируйте отображаемое значение даты.
Логика генерации модульного теста в Excel.
Вы можете найти весь код, относящийся к этому сообщению, в этом репозитории Github
Настройка проекта
При необходимости инициализируйте репозиторий git и добавьте .gitignore
Создайте библиотеку классов и добавьте ее в решение
Мы не собираемся запускать приложение напрямую, скорее всего, у вас уже есть сервисный уровень в вашем основном приложении, и логика генерации Excel пойдет туда. Поэтому вместо этого я создал проект как библиотеку классов.
Позже мы добавим проект модульного тестирования xUnit.
Мы будем полагаться на EPPlus для основных функций генерации Excel. Итак, добавим пакет в проект ExportToExcel.Services.
Определить сигнатуру метода
Давайте начнем с определения интерфейса, который будут использовать другие части нашего кода.
Реализация логики генерации Excel
Давайте добавим GenerateExcelService, который реализует IGenerateExcelService.
Начиная с версии 5 EPPlus команда решила требовать лицензии для коммерческих приложений.
ExcelPackage.LicenseContext = LicenseContext.NonCommercial; внутри конструктора указывает, что мы используем его в некоммерческих целях.
Поскольку остальная часть кода не требует пояснений, я перейду к реализации метода AddWorksheet.
Метод AddWorksheet имеет следующее содержимое.
В этом методе мы делегируем тяжелую работу по логике создания Excel библиотеке EPPlus. Метод LoadDataToWorksheet делегирует свою задачу методу EPPlus LoadFromCollection. Второй параметр true указывает, что мы хотим напечатать строку заголовка.
Мы также можем вручную создать экземпляр DataTable и использовать метод LoadFromDataTable. Подумайте об этом, если вам нужна собственная реализация LoadFromCollection, обеспечивающая больший контроль.
Вы можете узнать больше о доступном EPPlus API, ознакомившись с тестовыми примерами.
Прежде чем настраивать метод AddWorksheet, давайте добавим несколько классов, определяющих структуру таблицы.
Добавление экспортных моделей представления
Скажем, мы хотим экспортировать следующие данные некоторых учащихся: идентификатор, имя, дату рождения, пол. Мы начнем с определения этих свойств в POCO .
Чтобы продемонстрировать создание нескольких листов, я также добавлю класс ReligionExportViewModel.
Настройка имени заголовка столбца
Метод LoadFromCollection автоматически установит имя столбца на основе имени свойства. Чтобы установить имя заголовка столбца DateOfBirth в Date of Birth, мы можем аннотировать свойство атрибутом DisplayName. Если вы выбрали подход LoadFromDataTable, вам нужно будет вручную задать имя столбца, взяв значение атрибута с помощью отражения.
Игнорировать определенные свойства при экспорте в Excel
На этом этапе логика добавляет заголовок столбца для всех общедоступных свойств. Давайте посмотрим, как мы можем исключить свойство StudentExportViewModel.Id.
Аннотируйте класс StudentExportViewModel с помощью атрибута EpplusTable и свойства Id с помощью атрибута EpplusIgnore.
Это все, что нам нужно сделать. Об остальном позаботится метод LoadFromDataCollection.
Форматирование отображаемых значений даты
Теперь у нас проблема со свойствами DateTime. Мы увидим некоторые числа в экспортированном Excel вместо фактической даты. Давайте посмотрим, как мы можем это исправить.
Одним из подходов может быть прямое задание отформатированной строки в модели представления или определение свойства только для чтения, которое возвращает желаемое строковое представление даты. Хотя это будет работать, мы можем автоматизировать эту задачу, используя немного отражения.
Стиль строки заголовка
Давайте выделим нашу строку заголовка, сделав текст полужирным и добавив заливку.
Чтобы это работало, нам нужно знать диапазон адресов заголовка. Мы можем просто принять его как пользовательский ввод в WorksheetArgs DTO, но в чем же здесь забава. Давайте добавим служебный метод для его автоматизации 😉
Логика генерации модульного теста в Excel
Давайте создадим и добавим в решение тестовый проект xUnit
Давайте сначала убедимся, что GetExcelColumnName ведет себя так, как ожидалось
Вы можете использовать test-runner из вашей IDE или использовать dot-net-core-cli для запуска тестов.
Теперь давайте проверим логику генерации Excel.
На сегодня все, друг. Не забывайте расслабляться и улыбаться 😉. Кроме того, не стесняйтесь делиться своими мыслями в комментариях.
Читайте также: