Чтобы экспортировать Postgres DB в Excel, используйте c # - PullRequest
0 голосов
/ 14 декабря 2018

Мне нужно экспортировать Postgres DB (около 20 таблиц), чтобы преуспеть с помощью C #.Мне нужно реализовать некоторую логику для данных из БД, а затем нужно экспортировать их.Любая идея о том, как экспортировать все данные, используя c #?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018
using Npgsql;
using OfficeOpenXml;  // Nuget EPPlus
using System.IO;

EPPlus имеет одношаговый метод экспорта таблицы данных в электронную таблицу, поэтому, если вы воспользуетесь этим, вы сможете циклически выполнять запросы и экспортировать каждый из них на уникальный лист.

Нечто подобное (непроверенное, но должно быть 99%) должно сработать:

FileInfo fi = new FileInfo("foo.xlsx");
ExcelPackage excel = new ExcelPackage(fi);

int sheet = 1;

foreach (string sql in sqlQueries)
{
    DataTable dt = new DataTable();
    NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
    NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
    da.Fill(dt);

    ExcelWorksheet ws = excel.Workbook.Worksheets.Add(string.Format("Sheet{0}", sheet++));
    ws.Cells["A1"].LoadFromDataTable(dt, true);
}

excel.Save();

Конечно, я бы порекомендовал некоторые уточнения для работы с типами данных, форматированием и тому подобным, но этобазовая конструкция.

Кроме того, конечно, используйте IDisposable using свободно.

0 голосов
/ 14 декабря 2018

Эту проблему можно разделить на две подзадачи

  1. Получение данных в c # из postgres.
  2. преобразование этих данных в excel.

Теперь решаем проблему за один раз

Здесь - хорошая статья о работе с postgres с использованием c #

, как только вы получитеваши данные в c # вы можете использовать любую из многих библиотек, доступных для работы с Excel, используя c #

Одна из них NPOI

Здесь один с примером

Happy Coding. !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...