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
  • 1
    点赞
  • 7
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

餘發

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值