c# winform 将数据库所有表导出至一个excel文件中

将数据库所有表导出至一个excel文件中,存在多个sheet页,每个sheet页的名字就是数据库的表名

 /// <summary>
 /// 导出所有表
 /// </summary>
 /// <param name="tableNames">存储所有表名的集合</param>
 /// <param name="helper">操作数据库对象</param>
 /// <param name="txtPath">文件路径</param>
 /// <exception cref="Exception"></exception>
 public static void ExportAllTable(List<string> tableNames, SqlHelper helper, string txtPath)
 {
     try
     {
         // 创建新的Excel文件
         var workbook = new HSSFWorkbook();
         foreach (string tableName in tableNames)
         {
             // 查询表结构与数据
             DataTable dataTable = ExecuteSelectAll(tableName, helper);

             // 创建新的工作表
             ISheet sheet = workbook.CreateSheet(tableName);

             // 写入表头
             IRow headerRow = sheet.CreateRow(0);
             for (int i = 0; i < dataTable.Columns.Count; i++)
             {
                 headerRow.CreateCell(i).SetCellValue(dataTable.Columns[i].ColumnName);
             }

             // 写入数据行
             for (int r = 0; r < dataTable.Rows.Count; r++)
             {
                 IRow dataRow = sheet.CreateRow(r + 1);
                 for (int c = 0; c < dataTable.Columns.Count; c++)
                 {
                     dataRow.CreateCell(c).SetCellValue(dataTable.Rows[r][c].ToString());
                 }
             }
         }

         // 保存Excel文件
         using FileStream fs = File.OpenWrite(txtPath);
         workbook.Write(fs);
         MessageBox.Show("导出成功");
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
   
 }

 /// <summary>
 /// 执行全表查询的方法
 /// </summary>
 /// <param name="tableName"></param>
 /// <param name="helper"></param>
 /// <returns></returns>
 private static DataTable ExecuteSelectAll(string tableName, SqlHelper helper)
 {
     string sql = $"SELECT * FROM {tableName}";
     DataTable dataTable = helper.ExecuteDataTable(sql);

     return dataTable;
 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值