DataTable导出Excel

本文介绍了一种将DataTable数据转换为Excel文件的方法。通过使用Microsoft Office Interop Excel库,该过程包括创建Excel实例、设置可见性、生成列头及填充数据等步骤。此外,还提供了处理不同类型数据的具体方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private static void DataTableToExcel(DataTable dt)
        {
            try
            {
                if (dt.Rows.Count == 0)
                {
                    return;
                }
                //实例化一个Excel.Application对象
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写
                excel.Visible = false;
                //excel.Visible = true;
                //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错
                excel.Application.Workbooks.Add(true);
                //生成Excel中列头名称
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    //excel.Cells[1, i + 1] = dt.Columns[i].HeaderText;  //GridView
                    excel.Cells[1, i + 1] = dt.Columns[i].ColumnName;
                }
                //把DataGridView当前页的数据保存在Excel中
                for (int i = 0; i < dt.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        //if (dataGridView1[j, i].ValueType == typeof(string))
                        //{
                        //    excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
                        //}
                        //else
                        //{
                        //    excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                        //}
                        if (dt.Columns[j].DataType.Name == "String")
                        {
                            excel.Cells[i + 2, j + 1] = "'" + dt.Rows[i][j].ToString();
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dt.Rows[i][j].ToString();
                        }
                    }
                }
                //设置禁止弹出保存和覆盖的询问提示框
                excel.DisplayAlerts = false;
                excel.AlertBeforeOverwriting = false;


                ////保存工作簿
                excel.Application.Workbooks.Add(true).Save();
                ////保存excel文件
                //excel.Save("D:" + "\\KKHMD.xls");


                ////确保Excel进程关闭
                excel.Quit(); //可以直接打开文件
                excel = null;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值