c# - 使用 c# 将 Postgres DB 导出到 excel
问题描述
我需要使用 C# 将 Postgres DB(大约有 20 个表)导出到 excel 中。我需要对数据库中的数据实现一些逻辑,然后需要将其导出。知道如何使用 c# 导出所有数据吗?
解决方案
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();
当然,我建议对数据类型、格式等进行一些改进,但这是基本结构。
当然,也可以using
自由地使用 IDisposable。
推荐阅读
- python - 无法在 Ubuntu 中使用 yum 安装 python-pip ..已解决
- php - 使用 Laravel 进行 JWT 的作曲家出错
- python - Pytorch 点燃指标 - 传递对象
- matlab - 参数指示结果不应该存在时的依赖型设计
- python - 从 Javascript 加载的网页中抓取 URL
- .net - 如何在每次上课时运行相同解决方案的两个项目?
- repository - 如何在nexus 3中创建具有查看和上传组件权限的用户
- timer - 使用 KaldiRecognizer.java 类时如何增加默认的最小输入时间限制?
- python - 未找到模块 - 虚拟环境
- javascript - React : api 调用使用状态变量的旧值