EPPlus(SQL导成Excel)

使用Epplus方法把sql数据库中表的数据导出到excel中去:

需要使用EPPlus.dll引用。

using System.IO;
using OfficeOpenXml;

 public static string Create(string[] tables)
        {
            //获取文件夹路径
            string path = System.Configuration.ConfigurationManager.ConnectionStrings["Path"].ConnectionString;
            Console.WriteLine(path);           
            //数组存储表名 循环生产excel
            for (int i = 0; i < tables.Count(); i++)
            {
                string file = path + tables[i] + ".xlsx";
                //DataSet读取数据库数据
                DataTable dt = GetDataSet(string.Format("select * from {0}", tables[i])).Tables[0];
                if (File.Exists(file)) File.Delete(file);
                FileInfo newFile = new FileInfo(file);
                //建xlsx
                using (ExcelPackage xlPackage = new ExcelPackage(newFile))
                {
                    //添加一个项
                    ExcelWorksheet wsMO_RETAIL = xlPackage.Workbook.Worksheets.Add(tables[i]);
                    //怎么填 填的方式
                    var dataRange = wsMO_RETAIL.Cells["A1"].LoadFromDataTable(dt, true, OfficeOpenXml.Table.TableStyles.Medium3);
                    //填充数据到excel
                    dataRange.AutoFitColumns();
                    //设置格式
                    wsMO_RETAIL.Cells[1, 1, 1, 4].Style.Numberformat.Format = "@";

                    xlPackage.Save();
                }
                Console.WriteLine(i);
            }

            //放在一个excel中
            string filesum = path + "SUM.xlsx";
            if (File.Exists(filesum)) File.Delete(filesum);
            FileInfo newFilesum = new FileInfo(filesum);
            using (ExcelPackage xlPackagesum = new ExcelPackage(newFilesum))
            {
                for (int i = 0; i < tables.Count(); i++)
                {
                    ExcelWorksheet wsMO_RETAIL = xlPackagesum.Workbook.Worksheets.Add(tables[i]);
                    DataTable dt = GetDataSet(string.Format("select * from {0}", tables[i])).Tables[0];
                    var dataRange = wsMO_RETAIL.Cells["A1"].LoadFromDataTable(dt, true);
                    dataRange.AutoFitColumns();
                    wsMO_RETAIL.Cells[1, 1, 1, 4].Style.Numberformat.Format = "@";
                }
                xlPackagesum.Save();
                xlPackagesum.Dispose();
                Console.WriteLine("完成");
            }
            return tables.Count().ToString();
        }

 

posted @ 2014-12-03 14:01  吴枫  阅读(475)  评论(0编辑  收藏  举报