c#导出excel(3)

数据库系统中经常会使用EXCEL,有的时候需要用excel作为数据源,有的时候需要将查询得到的数据用EXCEL来保存出来,总之会不断用到EXCEL…..

首先加载引用:

using Microsoft.Office.Interop.Excel;

usingExcelApplication = Microsoft.Office.Interop.Excel.Application;

注意,假若你先前已经加载using System.Data,那么注意:

不要直接DataTable table这样定义,而应该这样System.Data.DataTable table,或者自己再进行一个转换,因为ExcelApplication亦有DataTable类,

public static void DoToExcel(System.Data.DataTable table)

        {

            try

            {

                ExcelApplication excel = new ExcelApplication();

                int rowIndex = 1;

                int colIndex = 0;

                excel.Application.Workbooks.Add(true);

               

                foreach (DataColumn col in table.Columns)

                {

                    colIndex++;

                    excel.Cells[1, colIndex] = col.ColumnName;

                }

                foreach (DataRow row in table.Rows)

                {

                    rowIndex++;

                    colIndex = 0;

                    foreach (DataColumn col in table.Columns)

                    {

                        colIndex++;

                        excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();

                    }

                }

                excel.Visible = false;

               

            SaveFileDialog sf = new SaveFileDialog();

            sf.AddExtension = true;

            sf.Filter = "EXCEL 2003(*.xls)|*.xls|所有文件|*.*";

            sf.Title = "导出EXCEL另存为";

            if (sf.ShowDialog() == DialogResult.OK)

            {

                string fileName = sf.FileName;

                excel.ActiveWorkbook.SaveAs(fileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel9795, null, null, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);

                excel.Quit();

                excel = null;

                GC.Collect();

                MessageBox.Show("导出成功!");

              }

            }

            catch(Exception ex)

            {

                MessageBox.Show("导出失败!");

                WriteLogtxt("DoToExcel",ex.Message);

            }

        }

        #endregion

}

上述例子中,直接将参数传来的System.Data.DataTable table转换为EXCELcol.ColumnName都将是默认,最好在操作System.Data.DataTable table时进行转换,包括统计行等等……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值