C# DataGridView导出为Excel .

using System ;using System .Collections .Generic ;
using System .Windows .Forms ;
using System .Text ;
using System .Diagnostics ;
using System .IO ;
using Microsoft .Office .Interop .Excel ;

namespace SalesListDownload
{
    public class Export
    {
        public static void ExportExcel(string fileName, DataGridView myDGV)
        {

            if (myDGV .Rows .Count > 0)
            {
                Microsoft .Office .Interop .Excel .Application xlApp = new Microsoft .Office .Interop .Excel .Application() ;
                if (xlApp == null)
                {
                    MessageBox .Show( "无法创建Excel对象,可能您的机子未安装Excel") ;
                    return ;
                }

                Microsoft .Office .Interop .Excel .Workbooks workbooks = xlApp .Workbooks ;
                Microsoft .Office .Interop .Excel .Workbook workbook = workbooks .Add(Microsoft .Office .Interop .Excel .XlWBATemplate .xlWBATWorksheet) ;
                Microsoft .Office .Interop .Excel .Worksheet worksheet = (Microsoft .Office .Interop .Excel .Worksheet)workbook .Worksheets[ 1] ;//取得sheet1

                //写入标题
                for (int i = 0 ; i < myDGV.ColumnCount; i++)
                {
                    worksheet .Cells[ 1, i + 1] = myDGV .Columns[i] .HeaderText ;
                }
                for (int i = 1 ; i <= myDGV.ColumnCount; ++i)
                {
                    Microsoft .Office .Interop .Excel .Range setrange = worksheet .get_Range(worksheet .Cells[ 1, i], worksheet .Cells[myDGV .RowCount, i]) ;
                    setrange .NumberFormatLocal = "@" ;//设置数字文本格式
                }
                //写入数值
                for (int r = 0 ; r < myDGV.Rows.Count; r++)
                {
                    for (int i = 0 ; i < myDGV.ColumnCount; i++)
                    {
                        worksheet .Cells[r + 2, i + 1] = myDGV .Rows[r] .Cells[i] .Value ;
                    }
                    System .Windows .Forms .Application .DoEvents() ;
                }
                worksheet .Columns .EntireColumn .AutoFit() ;//列宽自适应
                //if (Microsoft .Office .Interop .cmbxType .Text != "Notification")
                //{
                //    Excel .Range rg = worksheet .get_Range(worksheet .Cells[ 2, 2], worksheet .Cells[ds .Tables[ 0] .Rows .Count + 1, 2]) ;
                //    rg .NumberFormat = "00000000" ;
                //}

                string saveFileName = fileName ;
                if (saveFileName != "")
                {
                    try
                    {
                        workbook .Saved = true ;
                        workbook .SaveCopyAs(saveFileName) ;
                        //fileSaved = true ;
                    }
                    catch (Exception ex)
                    {
                        //fileSaved = false ;
                        MessageBox .Show( "导出文件时出错,文件可能正被打开!\n" + ex .Message) ;
                    }

                }
                //else
                //{
                //    fileSaved = false ;
                //}
                xlApp .Quit() ;
                GC .Collect() ;//强行销毁
                // if (fileSaved && System .IO .File .Exists(saveFileName)) System .Diagnostics .Process .Start(saveFileName) ; //打开EXCEL
                MessageBox .Show(fileName + "的简明资料保存成功", "提示", MessageBoxButtons .OK) ;
            }
            else
            {
                MessageBox .Show( "报表为空,无表格需要导出", "提示", MessageBoxButtons .OK) ;
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值