C#winform点击按钮下载数据库中表的字段到Excel上

2023-12-08 12:44

本文主要是介绍C#winform点击按钮下载数据库中表的字段到Excel上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C#winform点击按钮下载数据库中表的字段到Excel上

需求:C#winform点击按钮下载数据库中表的字段到Excel,并计算下载消耗的时间以及文件存放位置。

C#实现

using System;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Net;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using OfficeOpenXml;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.Net.Http;namespace WindowsFormsApp1
{public partial class 下载表字段 : Form{/ 数据库连接字符串private string connectionString = "server=127.0.0.1;uid=sa;pwd=xyz@0123456;database=test";private async void buttonDownload_Click(object sender, EventArgs e){using (SaveFileDialog saveFileDialog = new SaveFileDialog()){saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx";saveFileDialog.Title = "Save Excel Template";saveFileDialog.FileName = "用户模板";if (saveFileDialog.ShowDialog() == DialogResult.OK){string savePath = saveFileDialog.FileName;try{// 连接到 SQL Server 数据库using (SqlConnection sqlConnection = new SqlConnection(connectionString)){await sqlConnection.OpenAsync();// 从数据库中读取字段名using (SqlCommand command = new SqlCommand("SELECT * FROM Employee", sqlConnection))using (SqlDataReader reader = await command.ExecuteReaderAsync()){// 获取字段数量int totalColumns = reader.FieldCount;// 初始化进度条progressBar1.Maximum = totalColumns + 1;progressBar1.Value = 0;// 创建 Excel 文件using (ExcelPackage excelPackage = new ExcelPackage()){ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Template");// 写入字段名int columnIndex = 1;for (int i = 0; i < totalColumns; i++){worksheet.Cells[1, columnIndex].Value = reader.GetName(i);columnIndex++;// 更新进度条progressBar1.Value++;await Task.Delay(10); // 延时以更新进度条显示}excelPackage.SaveAs(new FileInfo(savePath));}}// 计算所导出Excel消耗的时间//TimeSpan elapsedTime = DateTime.Now - startTime;//MessageBox.Show("导出Excel消耗时间: " + elapsedTime.ToString("g"));// 计算所导出 Excel 消耗的时间(秒)TimeSpan elapsedTime = DateTime.Now - startTime;double seconds = elapsedTime.TotalSeconds;//MessageBox.Show("导出 Excel 消耗时间: " + seconds.ToString("F2") + " 秒");MessageBox.Show("下载完成。" + "文件存放位置:" + savePath + "导出 Excel 消耗时间: " + seconds.ToString("F2") + " 秒");// 打开文件//System.Diagnostics.Process.Start(savePath);}}catch (Exception ex){MessageBox.Show("下载出错:" + ex.Message);}}}}}
}

这篇关于C#winform点击按钮下载数据库中表的字段到Excel上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/469882

相关文章

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

使用Python合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的