C#-Sqlsever数据库数据生成Excel表

C# 将数据库内容导出到Excel表中

添加Microsoft.Office.Interop.Excel引用
在这里插入图片描述
将嵌入互操作类型的值改为False
在这里插入图片描述
新建窗体Generate
在这里插入图片描述
Generate窗体添加一个button控件

private void button1_Click(object sender, EventArgs e)
        {
            //保存文件对话框
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "Excel文件|*.xlsx|Word文件|*.docx";
            sfd.FilterIndex = 0;
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                //连接数据库,查询数据
                using (SqlConnection conn = new SqlConnection(@"Sql sever数据库连接字符串"))
                {
                    using (SqlDataAdapter sda = new SqlDataAdapter("select * from 表名", conn))
                    {
                        using (System.Data.DataTable dt = new System.Data.DataTable())
                        {
                            //将数据库中查到的数据填充到DataTable数据表
                            sda.Fill(dt);
                            //调用导出Excel的方法,传入DataTable数据表和路径
                            ExportExcel(dt, sfd.FileName);
                        }
                    }
                }
            }
        }
void ExportExcel(System.Data.DataTable dt, string filepath)
        {
            //创建Excel应用程序类的一个实例,相当于从电脑开始菜单打开Excel
            ApplicationClass xlsxapp = new ApplicationClass();
            //新建一张Excel工作簿
            Workbook wbook = xlsxapp.Workbooks.Add(true);
            //第一个sheet页
            Worksheet wsheet = (Worksheet)wbook.Worksheets.get_Item(1);
            //将DataTable的列名显示在Excel表第一行
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                //注意Excel表的行和列的索引都是从1开始的
                wsheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
            }
            //遍历DataTable,给Excel赋值
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    //从第二行第一列开始写入数据
                    wsheet.Cells[i + 2, j + 1] = dt.Rows[i][j];
                }
            }
            //保存文件
            wbook.SaveAs(filepath);
            //释放资源
            xlsxapp.Quit();
        }

**获取Excel、DataTable、DataGridView表中单元格值的方式**

	//Excel(行和列的索引是从1开始,不是从0开始)=xxx.Cells[,]
 	//DataTable=xxx.Rows[][]
	//DataGridView=xxx.Rows[].Cells[].Value
  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤使用 C#SQL Server 数据库数据导出为 Excel 文件: 1. 使用 SQL Server Management Studio (SSMS) 创建一个 SQL 查询,该查询从特定中选择要导出的数据。 2. 在 Visual Studio 中创建一个新的 C# 控制台应用程序项目。 3. 在该项目中添加对 Microsoft.Office.Interop.Excel 引用的引用。 4. 在代码中,创建一个 SqlConnection 对象并打开连接。 5. 创建一个 SqlCommand 对象,并将查询字符串和 SqlConnection 对象传递给它。 6. 使用 SqlCommand 对象的 ExecuteReader 方法执行查询,并将结果存储在 SqlDataReader 对象中。 7. 创建一个 Excel.Application 对象,并使用它创建一个新的工作簿。 8. 在工作簿中创建一个新的工作,并将 SqlDataReader 对象中的数据写入该工作中。 9. 保存 Excel 文件。 以下是 C# 代码示例: ``` using System; using System.Data.SqlClient; using Microsoft.Office.Interop.Excel; namespace SQLtoExcel { class Program { static void Main(string[] args) { string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;"; string queryString = "SELECT * FROM myTable"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlCommand command = new SqlCommand(queryString, connection); SqlDataReader reader = command.ExecuteReader(); Application excel = new Application(); Workbook workbook = excel.Workbooks.Add(); Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; int row = 1; int column = 1; for (int i = 0; i < reader.FieldCount; i++) { worksheet.Cells[row, column++] = reader.GetName(i); } row++; while (reader.Read()) { column = 1; for (int i = 0; i < reader.FieldCount; i++) { worksheet.Cells[row, column++] = reader[i].ToString(); } row++; } workbook.SaveAs("output.xlsx"); workbook.Close(); excel.Quit(); Console.WriteLine("Data exported to Excel file."); Console.ReadLine(); } } } ``` 请注意,这只是一个简单的示例,您可能需要根据您的需要进行更改和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值