C#导出Excel那些事

Excel导出

Excel导出的意义

因为在项目中有些报表数据客户需要导出功能,那么导出为Excel就十分有必要了,可是有些客户的机器上并没有安装Excel或者安装的版本参差不一。
那么我们在这样的情况下应该应该怎么做呢?最简单的方法就是引用Excel相关的Com组件就行了,可是这种情况只能在安装了Excel的用户适用,
对于没有安装Excel的用户不能强制用户安装吧。那么我们只能将眼光瞄向第三方的类库了,能用的Excel操作导出类库大致有这么三个
  1. NPOI
  2. ExcelRepor
  3. aspose.cells

    好的,废话不多说,接下来就将这几种导出方法一一道来:首先我们模拟一个数据源

         private DataTable dt = new DataTable();

         /// <summary>
/// 装载数据
/// </summary>
private void Inidata()
{
dt.TableName = "student";
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Team", typeof(string));
DataRow dr = dt.NewRow();
DataRow dr1 = dt.NewRow();
dr["Name"] = "科比";
dr["Team"] = "湖人";
dt.Rows.Add(dr);
dr1["Name"] = "詹姆斯";
dr1["Team"] = "骑士";
dt.Rows.Add(dr1);
list.Add(new Student { Name = "科比", Team = "湖人" });
list.Add(new Student { Name = "詹姆斯", Team = "骑士" });
}

使用NPOI导出

NPOI 是 POI 项目的 .NET 版本。具体的信息请自行百度。下边是我们公司用的一个NPOI到处的Helper中的片段
  public class NPOIExportExclHelper
{
/// <summary>
/// 创建一个Excel
/// Yakecan
/// </summary>
/// <returns>返回一个空表格</returns>
public HSSFWorkbook InitializeWorkBook()
{
HSSFWorkbook workBook = new HSSFWorkbook();
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
SummaryInformation si = PropertySetFactory.CreateSummaryInformation(); dsi.Company = "河南xx软件科技有限公司";
dsi.Manager = "Office Word 2003/2007"; si.Author = "www.henanluheng.com";
si.Subject = "信息导出";
si.Title = "系统报表"; workBook.DocumentSummaryInformation = dsi;
workBook.SummaryInformation = si; return workBook;
} /// <summary>
/// 把指定的DataTable导出Excel
/// Yakecan
/// </summary>
/// <param name="dt">数据源</param>
/// <param name="path">导出的路径(包含文件的名称及后缀名)</param>
/// <param name="tittle">Sheet的名称</param>
public void Export(DataTable dt, string path, string tittle)
{
HSSFWorkbook workbook = InitializeWorkBook();
ISheet sheet1 = workbook.CreateSheet(tittle); IRow titleRow = sheet1.CreateRow();
titleRow.Height = (short) * ; ICellStyle titleStyle = workbook.CreateCellStyle();
titleStyle.Alignment = HorizontalAlignment.Center;
titleStyle.VerticalAlignment = VerticalAlignment.Center;
IFont font = workbook.CreateFont();
font.FontName = "宋体";
font.FontHeightInPoints = (short);
titleStyle.SetFont(font); NPOI.SS.Util.CellRangeAddress region = new NPOI.SS.Util.CellRangeAddress(, , , dt.Columns.Count);
sheet1.AddMergedRegion(region); // 添加合并区域 ICell titleCell = titleRow.CreateCell();
titleCell.CellStyle = titleStyle;
titleCell.SetCellValue(tittle); IRow headerRow = sheet1.CreateRow();
ICellStyle headerStyle = workbook.CreateCellStyle();
headerStyle.Alignment = HorizontalAlignment.Center;
headerStyle.VerticalAlignment = VerticalAlignment.Center;
headerStyle.BorderBottom = BorderStyle.Thin;
headerStyle.BorderLeft = BorderStyle.Thin;
headerStyle.BorderRight = BorderStyle.Thin;
headerStyle.BorderTop = BorderStyle.Thin;
IFont titleFont = workbook.CreateFont();
titleFont.FontHeightInPoints = (short);
titleFont.FontName = "宋体";
headerStyle.SetFont(titleFont); headerRow.CreateCell().SetCellValue("序号");
headerRow.GetCell().CellStyle = headerStyle; for (int i = ; i < dt.Columns.Count; i++)
{
headerRow.CreateCell(i + ).SetCellValue(dt.Columns[i].ColumnName);
headerRow.GetCell(i + ).CellStyle = headerStyle;
sheet1.SetColumnWidth(i, * );
} ICellStyle bodyStyle = workbook.CreateCellStyle();
bodyStyle.BorderBottom = BorderStyle.Thin;
bodyStyle.BorderLeft = BorderStyle.Thin;
bodyStyle.BorderRight = BorderStyle.Thin;
bodyStyle.BorderTop = BorderStyle.Thin;
for (int r = ; r < dt.Rows.Count; r++)
{
IRow bodyRow = sheet1.CreateRow(r + );
bodyRow.CreateCell().SetCellValue(r + );
bodyRow.GetCell().CellStyle = bodyStyle;
bodyRow.GetCell().CellStyle.Alignment = HorizontalAlignment.Center; for (int c = ; c < dt.Columns.Count; c++)
{
bodyRow.CreateCell(c + ).SetCellValue(dt.Rows[r][c].ToString());
bodyRow.GetCell(c + ).CellStyle = bodyStyle;
}
} sheet1.CreateFreezePane(, ); FileStream fs = new FileStream(path, FileMode.Create);
workbook.Write(fs);
fs.Flush();
fs.Position = ;
sheet1 = null;
headerRow = null;
workbook = null;
//OutPutExcelStreamOnClient(ms, xlsName);
fs.Dispose();
} }

好了,接下来让我们来使用一下这个导出的功能,导出代码如下,这些没什么技术含量,F5启动程序查看导出的效果

  SaveFileDialog savedialog = ShowExportExcelDoalog();
savedialog.FileName = "这是我的测试数据";
if (savedialog.ShowDialog() == DialogResult.OK)
{
NPOIExportExclHelper excelHelper = new NPOIExportExclHelper();
excelHelper.Export(dt, savedialog.FileName, "这是我的测试数据");
}

OK,这是我们导出的效果图,自动为我们加上了序号这一列,不过整体来说导出的功能还是没有任何问题。不过还是有一点瑕疵,数据的列名还是英文,解决方法也很简单只要我们设置数据源的dt的列头名设置为中国文就行了,dt.Columns["Name"].ColumnName = "姓名"; 设置完成再导出就没问题了。对于我们直男程序员来说这样大致差不多也就完成了任务,可是这样的效果对于真正的生产环境来说还是不行的,因为有些客户还要求导出的Excel要有格式,比如标题高亮啊、数据行每行颜色的高亮。这些怎么办呢,这就用到接下来的方法了。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAm0AAACtCAIAAABtHt90AAAbk0lEQVR4nO2d74/dVHrH79/Civd5ZW1uk7CUpIGW0LKQmWGZVQh1b9UVu2hh0umLrjqqtiyb7TaOGKnVokpEIH6FXJjQOChNBBNIMpswSTZACLmBYZgACeFHkXZfRCJyX9y599rH5xwf+9r3OcfP96NH7OSOr/21x/t8fGxf38ZTJ3/Rrcdf+skXX33LqqIo2n/wSBRF5ElQqJEVdnuGhT96pdVg7tG58DD2LRSrwm7PsPBHr7QSHr1y7RtWdePGjbnw8I0bN8iToFAjK+z2DAt/9Eor4dFPr37NqqIoeiU8HEUReRIUamSF3Z5h4Y9eaSU8+pvgP1EoFAqFQplXwqPHf7+IQqFQKBTKvBIefffCJRQKhUKhUOaV8OjSyucoFAqFQqHMK+HR3z31LIphPfnUc08+9Rx5DBQKhXKxRI9GgAfXr19/462Fp59vv3bkzdPnLpw+d2Fp5UoNCvswAGDEwKMc+eTyZ8+80P7f1499uPwZufngUQCA08Cj7Pjk8mdPP98+++4H5M4rUCdOnTl46Eh1Hm00GvrfqtC/xXDm5kkM56OaSfd16W/TL+pnAgCAR3lx/fr1Z/e+cu78JXIjFqjxifvWrVu3bv36B/2/K8WjhiLJ/JXUPWm/auyVfj1zMpXITeaTVrvJD4ZJ9AcWANQPeJQXb7y1cOToCXIjFqiZf/2l53mnTr+zdWz8oZ89XIpHozzDryj/eFSlNJOFauaf9nFhj6pmaz6oNVwdAGpMDT2K01Aqvvzq6+f2vRq/Jnr23Q8Ozx/fNxfumwsPzx+3+WTvrbfeuuWuv86crJhHDQWZd9cyf7uwRHMXqv6rX0R6BQ1/JX0FHgXMYeFRaU9kyMnFs/HB6LnznYOHXm/vP9ivg4deP3e+Q65MoX50/6TXo9lslutRFcVslDmZ9C3Czxotpd+l+m+BtYtk/0+RLjr9K/0GAaDe1M2jmlaC/2+/cuBQ/PMtx0+dee3wG0IdP3WGXJzp+udf/IvneY/v/G3p41EVpewtab9mTpa56wpi03hUozTNi+mZqN6isTsArIBH68CfyUhP9txLc+c7H/eVc+LU4rGFU0KdOLVIbs10jY9PeJ53/oOPllauLLx99sBrh5dWrvx+8Q+HjswX9mjesVeuIaZ0Pqr5Z2Yw1J5055dq1USKwsTwKAAq4NGakCnRKIqeeaF94cNP+so5996Fc+++L9Z7Nj6QYf2GDbdt3Li0cuXerWN/ftttv/r1v//mt7vuvHPL5I+3DTkelVrHZFcxnCbuV41HpTLWezevRzUz1K+UxqP9X5kcVQBQV+DR+qCXaBRF+/YfjN9J9NHyp0vLl4X6aPlTcmsKdeLUGc/ztj2wfWnlylsn3n5k6h89z+tqNV1V369rMll/AkNJq2Y7So9qLJierer4QDpnAGpPrTyqPxzm8P9wjUSjKHrjrYU3F073lbN8+erVL7689tU3/br6xZfLl6+Si1Ooxx7fGb84uu2B7Z7nPfTTh0+dfqd0j2qOwyKFS6S+1CjN3KMmE+iFp3mvfkGZs9VPDAAr6uZR6c+qV7jxyeXP2q++FrfOyufXrn397bd//NO3f/zTta+/Xfn8Grk107Xtge3rN2xYWrmyZctd924d+68n/3vz5tvXrVu3+fbby/XoMD7LnLnwSinLzRSnMI3JKFMzE/266I9iAagx8Cgjvvvuu337D554+w/kajSs739/7TPPvfiDH9z6b7/69dLKFekAtCyPmuwwQ3pUrzTNbDP1ph+wxicTxsrSdTT8/44wB4xKAVvq41GhR0jbB46Uv/zq66dfeDl+t5HN9dBPH37wb/1fPva4+VsKPBfQcJfQaEP/FunP6X9q9s9co1iVvNMz17ySnqFKrvAoAPXxKDDkzLn32q++1lm6TK7JKirX517iP6soMHEkO5LTL136cyRTnWqG6YWaEE+oErBqYtUq580AgOvAoxw5uXh2z7MvnTp7nlx7hB4FAIBSgEeZcvWLay++/D/7Dx45dvKMo1//Ao8CAGxA9CgKhUKhUCjzSnh09+/a1F4HAAAAXELi0aWV/0OhUCgUCmVS8CgKhUKhUMVL9OhjAAAAADAm4dG5A4fKqqM710Tv3Icaffm+T56BZ7m+zx/duYb8duthau7AIfIMyO9uDZNf9GhZmY7uXBO9+yPU6Mv3ffIMPMv1fR4eRX7kL1ZVevT8JGr05fs+eQae5fo+D48iP/IXqyo9euHHTtazGz1v/Z7XqWMULd/3yTPkq9f/ctITcHL7V7jPxzfRz++uLn/57Wlhdiz5px3bvWhhHzTP73me503vdSW/YhWm2u7kX7mytDI3Vf0uZKtHL25zsCb2bPVmHtnoPfJD6iQFy/d98gz5av6vJr2N8/FXnt/oCa+4UFXt84mtMbFnq1fRzlmZR+PWmZuysg8a56+wqvToKFah0uOAmPir2oWs8Oi59xPPlju6c010abt79eadk96m+e5/ycMUKt/3yTMU2eaJF++Z8dbveZM6WM6qZp+/Z8bzZl4QNlclG2ckHr2y1J52aTwHjxLnXwzGU9asZo3oPXru/UtHjp6Iv3J055roowedq+Vd671H740+enD+UW9y1/3keQqU7/vkGfLVW3dOepvm46+8uKn7V3CrKtnnX9zkCRunyvzl90FJy5ub8iaChdIbLjxKvAqct38JHu1KVOLRj33XauuMt2HPcT/62I/2/oU3tmWZPlLu8n36DPnq+JbU9VFvMpikD5azKtnnR7gfjsqji8G4O9fnpNdHd8yVv6BRXh91KH972hufPVbFZik1/7Ae7UtU4tFPWo7Vvs3e2F3Lq/8cn/G8mX3UkfKX7/vkGfLVwl2T3uZ58ZUNexaog+WsSvb5xD5Zef7y21MdPOrAeMiGVRiBR/fu6B8LlH9Kg8yjcYlKPLry907Vtj3j6QPPcepUucv3ffIM+Wrhbya9zfOJF8dnPG+mTR0sZ1Wyz7c3e+LGqTB/+X0Q53Vp849wFUa4/SvZhWg8KkhU4tFP/8GlOnn3pHf7vPjKLXtOUgfLWb7vk2cYdst/et+Mg1u+mn3+vhnPm3lZ/0pp+UfRB3Gf0Sjzj3AVRnefUW08mpaoxKOf/8Shmp/2vOn70i9OPrGdPFuu8n2fPEO+evvuSe/2+dgry0/c4o3fvUweLGdVtM8vP3GL592y5+3uP7fvGfcq2jj43ItB/goLHlXnj+8zi8F4Lc7rSiUq8ejVh9yp+2e8W/acTr2+/w7Pu2OePl6O8n2fPEO+Ov3D1H1Gjm3zblW4z++/Y7Bt/un+6vJX1ASrfgLA8H3QPH91awGPqqvrTnvvk6ryOQzXfoYaffm+T56BZ7m+z+O5gMiP/MWqSo9+9TBq9OX7PnkGnuX6Pg+PIj/yF6sqPfrNz1GjL9/3yTPwLNf3eXgU+ZG/WCU8enTnGpTr5fs+eQaUo1XiNxCjUHwq4dGSnzUKKPB9vwFAfm7+3k2NRoN6/y3OxUsfUkcYCuSnZZj88Gjd8H2fOgJwD3iUHOSnBR4FA+BRUAB4lBzkpwUeBQPgUVAAeJQc5KcFHgUD4FFQAHiUHOSnBR4FA+BRUAB4lBzkpwUeBQPgUVAAeJQc5KcFHqWjEzRboewXYash/4VyPuoPJOSake/7UdQJms2gk2PhskWELf08wlaOYGGr0cgRKRqsQxhmLKUTNJvNljBvoy0QthqtoJMnVG2BR8lBflrgUUqUgugETXMFdoKmfNpO0DQUUNhqNBqNhu/7Qaer5WbQUYtefGdqGd35ad8ctlYnkB4GJN6aPq7IStadZytUxuu9O7btBn8Mg/Ti3251A0rJdwjgIPAoOchPCzxKitKXnaBp3H+1HlXYQOj7q1N1z+uGrcGiw5beKPKhm1H63kRiyvQsZePzjEXE1qEvbNm7BwsfvEP2Bu0SUv/SR68d8Cg5yE8LPEqLqv+m6ASBqh8PeV435rG0R1UDzv57xXOivbcY2GP1zUqP9s8NS2WkH2wn16EThuJ0qxl7C48NcDVHH+olwKPwKCXITws8agm6E4MZZwiLjEflU8k8qh4OqqQtXxWl8mIqazaDMO7R1VnKZdRTn9GWSx9RdM/tdhcePxzQbzTVugXqEPCoA3Du4zbAOT88Wj0mQ7uqPRpJBnSpWfddJ1lociUk48/GQGmx8WhcqHllpF51vXabrZZicC/OTTMe7XQyx6m1Ah4lB/lpgUcpEEdzSksYnSHNfV5XqRL9c+q1g9Tev2XOS63F4B6dThiGo/WoMJGwjXqD4uzZpDwamy7rqnLNgEfJQX5a4FFiEu1YFI7ZhUbdeNRgMJQajxo5SO5R0+ulA2cGoehPvUeFgwbDC6TKKcKg2Wi1Wr1ZdYJW0Il9WEYzl96vuvFTHq3/KHQAPEoO8tMCjxKTarkx6ZTXjjV3KaU9mhpcyULIPBoEraAjWZZyPTpBEKbGoabj0X5u2fC62WrpjiH6743/0Aq710zDoPdG3U3BYavRbPZuddKeElCdFqgN8Cg5yE8LPEqM1DFhq9FoBZomnujbzWb8H70PgBo386RHgyBMf/BFHlH5GU/JjUqKT8m2Yp97KezR+CvNuALVF0jjk8WGukEY/9/sq6zxUXJ8DTEedQ3OfdwGOOeHR0tA7RjjJzF04k/Vyfc0ot6SVk9t+r6f+lCl+e06yVuJsj8UInzupWfLcjyq2hCJ0XL/cQ3iug1OCAhLCMNg9cAiEE7IC+fj4VGn4NzHbYBzfni0BOQtt+svs9tVBs8fWv1X6mZb9dPr+jbsLqX3fN3VULrLs7rxqCBSxdnR3lCwIo8qtqzRTVmrZ3ZlNy73D2/ivxQ3OjzqGpz7uA1wzp/fo2/eOeltmodHY0habkxfSUdKEQauKk+Ity8NXk5fH+0PUfUPDNJ4NHFRNTU6jd+d2/8prU9zj64OMnOeXRVOX8ef2xC0uocRZk9MWl2u6jbo2isVHiUH+WkZpUfvmfE8Dx5NIjTr9NgtQ6XiG8zO64qaEzxqcFY5w6NixNTHXgbr1B2XSnL3N02GR/s3CcfnEYbCdV7xifXai6mdoJlxHBGbeW9Oio/81PoWoyiK4FELQH5aRuTR5f9Y73ne5KObMB6NkTyrqn7Qneb8aidoNlpB4maZQtdHxc+9SAZSSRMN41HJa93YHdWXx6g9KuowMf4ebLjUTcSdcPWBC93PvsjOCWQeSPSHzf2LyfCoo3Du4zbAOX8ej75wzzLO6w5YNWj/epzuGbZRJBlNDeYzeIZeS3Ju04CkR1vxcWLyhHFQ0KOywwDhtcG7ZSdT1R7tbrZOp/dYPuXlTOX3tMXcm/Rxq6X/trZe0MHQHh6lDlIczn3cBjjnx/XRIUh9KlO4upa8YUZ+rU1wTqiQSQaD65MN3/dTj0sYPDVXXLbuEmzsQYKy24wSjk5f1hTcI5VR7Hy37mOe3VF+qyUb6CYGnb2ZhMKRhCRM78NFzaATf/CE4vooPOoAnPu4DXDOD49WgfKhfYIplJ/r0NyPqjTh6iMU+tdHpXnE67jieDQx9+QnXMWgg3PY8vusUg83UDyvSf10idQaCGeRZTOVncwV7miOvz/5fHvleLT2txnBo/QgPy3wqJMYtueEKjPODEdRJPVoF/GTlqkHAMrPPOtGirrHHOSdKJO+4+Sn0NOqNZppkJiP3KP1H47Co/QgPy3wKBig9igASuBRcpCfFngUDIBHQQHgUXKQnxZ4FAyAR0EB4FFykJ8WPBcQDIBHQTE490EbQH5a4FEwAB4FeenexdYdj7o7JOXcx22Ac354tG74vq/+0AwAIhE8agfIT0tpHp07cKjEousMrMF4FOSiERPnzd+76ebv3XTx0ocoFMq8Eh5dWrlSVs0dOETYGjiD8SgVUW9g5xb92PEfXOQi4/GQDXDOD4/WDYxHqXDXQPCoDSA/LfBocTK7hv5A3kLgUSqs3SUMcT0/5z5uA5zzc/dolNU+VL+1tunAo1RYu0sY4np+zn3cBjjnz+PRhdkxb5WptsMeNbliFJ9YNZORhM0NPEqFtbuEIa7n59zHbYBzfnOPzk319dme9ryJYMFhj+aaGOd1hyF9P4u1m25ICqyXVfuV638Xzn3cBjjnN/Zoe9obnz22+s/FYDxjSGq/R92yozm2eTRK3r1Sgy2sophHVT+MHtf/NJz7uA1wzl/s+mhsbOqsR81fdwt4lIphVs2GzWJDhmHg3MdtgHP+Ih49tnsiNjZ126Oa/q45o2vz+NVOjwr/jf9K2Iz6zWvzli/do6qVzbvRhsngEJz7uA1wzp/bo8d2T3je9F6X79eVdqVcb7EZhzyq/1k/ffqf5JTrUdXK5t1ow2RwC8593AY458/n0WO7JzLvMHLCo7mGmG71F4c8Gp8AHtW/ohqaCxPAo+6C/LSMyKOGI1EnPKp5RXUOLVO3lmCtRyPZ0L//iqFHbf4TlO5R1crm2mjDZHALzn3cBjjnN/bowuyY2UjUaY+atxJrm45DHtX/nDketY1Kx6PS1+HROJz7uA1wzm/q0b07PAFH79eVNosCHcTapuOiRw1PUabHspVFLkKlHk0f6hlutGEyuAXnPm4DnPOzey4gPDpihNOSmvO66R8imS3sPKkbDbFLqNZItbJ5N1rV+S2Bcx+3Ac75eXlU06pyzcTmjmObR/lg815hguv5OfdxG+Ccn5dHOQCPUuG6h1zPz7mP2wDn/AmP+gAAAADIA8ajdcPHeJQI18dzrufnPB6yAc754dG6AY9S4bqHXM/PuY/bAOf88GjdcMKjmZ9gsfwjLlJKDGk+K5KF2gnnPm4DnPPn8Wh7uvfZ0ewHMrjt0c6utY1WSJ2iGDZ7VPUZGHhUeLvwIVHNLeLwaB/OfdwGOOcv9Dyj9nTmAwJd9mjYajQa8GhlpIWRy6PWtvvhg8U//SlsGXg0E8593AY45y/8/aMZQ1JHPdrZtbbRaKxttTAerY5Ma6ZfydSJDVShNHjUHM593AY45+f4/aMaOmHYiXBetyoaKfqva6aM1MNWq6jIozivawjnPm4DnPPn9OjC7Biuj9qNzR7tUuy8rv1dvqzro+bndcs9vLB/C+vh3MdtgHP+Qud1a359FB6tEOnoCvcZxecgHYLDo5lw7uM2wDk/ro/KgEcrIz3SimRy5enR+HyEe470hxqlLNqJjayBcx+3Ac754VEZ8Gg1pMdYmZJw4spol4o8qpo5PCrAuY/bAOf8xh6Nn8tdmB2r6X1Gq8CjVZJ5FjfSWsTadl/ied3M66Mm27DY0t2Fcx+3Ac75c4xHj+2e6D2HIePiKDxKSG08qnKnte2+xPuMDF+sKICjcO7jNsA5P54LWDdq49H0K6qTwJZQejDhBLjJUobJYO2GNYRzH7cBzvnh0bphv0friusecj0/5z5uA5zzw6N1Ax6lwnUPuZ6fcx+3Ac75Ex6dO3CoxGoACnzfp44AXOXipQ9RKFTewni0bmA8SkXD8fGc6/kvMh4P2QDn/PBo3YBHqXDdQ67n59zHbYBzfni0bljlUenJQ+lkJrOSTmxP968iSeY8S1yoPVuyGJz7uA1wzp/fowuzYzX+/Gj3i9MajYazX0Bqj0fNldlIfsBDalzBoxorUzFkGGGNMg8+SlloRbMigXMftwHO+XN7dO+OGj+HIWz19Rm2Go21uzrEgQpgiUczb2kRJhZ+SP9sMq6lpZRI6S2gny082odzH7cBzvlzerQ97Y1P1HY8GrZi6nT1mUaWeDQyexaP4EVhQKaZm4VNf/jxaGS20UpcaEWzIoFzH7cBzvlzeXQxGJ/eW+/zugNiY1OnsM2jaTFIBan6b3yytHGtGpuW6FHN+Fv6q1I2hSWbsTCc+7gNcM6f7/m6Y7sXa359tEdn11o3T+va5VGV89KDrUwrNBTjUXu6f4keNZ9ziatvz5YsBuc+bgOc85t7dG6q+x0vDDza2bXWzbFoFFnmUfPJVH6N/1NqYnu6//AeFVZQethR7kIrmhUJnPu4DXDOb+rRvTu8qTaD+3VXJermUDSKIvs8mneUqRJk7cejwnxUhxcVLbTcWZHAuY/bAOf8hh6dm/JEVrVaL486PRLtYptHDSfTy0MjY3u6fylJhDEoPGoO5z5uA5zz4/OjMdy9KBrDNo/qx6PxKaUT62ce2dT9h0ySNqjwShULrWhWJHDu4zbAOT88OiBsiU3cxZGphR6Vvl5ssvT09nT/Ks7rZs4ZHu3DuY/bAOf8eC5g3bDEo5ohpsoQwlukc9O8i5zhk6gG6+nVVzHk0od5Ozmc+7gNcM4Pj9YNSzzKENc95Hp+zn3cBjjnh0frBjxKhesecj0/5z5uA5zz43u86wa+xxsUhvz7kFEoFwvj0bqB8SgVFxkfj9sA8tPCOT88WjfgUSo49xEbQH5aOOeHR+sGPEoF5z5iA8hPC+f8eTy6MDvWf5pR91m78Kh9wKNUcO4jNoD8tHDOn8ej7WlvxxzGo5YDj1LBuY/YAPLTwjl/Do/u3eGN7V6ERy0HHqWCcx+xAeSnhXN+c48uBuMTwQKuj9oOPEoF5z5iA8hPC+f8eb5/1JsYG+9eHc0WKjxKBTxKBec+YgPITwvn/MYeXZgdG+hzbirrUfXwKBXwKBWc+4gNID8tnPMX+9zL3FTWkBQepQIepYJzH7EB5KeFc354tG7Ao1Rw7iM2gPy0cM5v7NH2tNc/l7swO4bPj9oKPEoF5z5iA8hPC+f8Ocajx3ZP9J7CUM/v8a4H8CgVnPuIDSA/LZzz47mAdQMepYJzH7EB5KeFc354tG7Ao1Rw7iM2gPy0cM4Pj9YNeJQKzn3EBpCfFs75K/we76q/OhUlLd/3yTOgUCgUn8J4tG5gPErFRcbH4zaA/LRwzg+P1g14lArOfcQGkJ8Wzvnh0boBj1LBuY/YAPLTwjl/Lo8uBqvPqc/+AjV4lAp4lArOfcQGkJ8Wzvnzff+o132MUeKZ9fCoXcCjVHDuIzaA/LRwzp/ve9Pw/aP2A49SwbmP2ADy08I5f67vTct+HCA8Sg48SgXnPmIDyE8L5/x5nlM/Pru394jdqTY8ainwKBWc+4gNID8tnPPn+r6X3u1F7WkP10dtBR6lgnMfsQHkp4Vz/nzj0d53pS0G4xlDUniUCniUCs59xAaQnxbO+YtdH4VH7QUepYJzH7EB5KeFc/58n3uJndfNuOcIHqUCHqWCcx+xAeSnhXP+gs9hwH1G1gKPUsG5j9gA8tPCOT+eC1g34FEqOPcRG0B+Wjjnh0frBjxKBec+YgPITwvn/PBo3YBHqeDcR2wA+WnhnB/f4123wvd4o1Ao1CgL49G6gfEoFRcZH4/bAPLTwjk/PFo34FEqOPcRG0B+Wjjnh0frBjxKBec+YgPITwvn/PmerxtH/1Xe8CgV8CgVnPuIDSA/LZzzFxqP4nlGFgOPUsG5j9gA8tPCOf//AwV1jwKqJA9xAAAAAElFTkSuQmCC" alt="" />


使用ExcelReport和模板导出

使用模板导出Excel可以实现Excel的数据和样式的分离,虽然NPOI也可以导出的时候设置样式但是代码比较繁琐。

ExcelReport是博客园的一个大神韩兆新捣鼓出来的一个小工具。在QQ群中作者对于使用者遇到的问题和意见还是反馈的很积极的,这点要给作者点个赞的。关于这个控件的具体详细方法还请大家参考作者的一系列博客,下面只是给你导出的最基本的代码。

首先是我们的模板格式

aaarticlea/png;base64,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" alt="" />

导出代码如下

 SaveFileDialog saveFileDlg = new SaveFileDialog();
saveFileDlg.Filter = "Excel 2003文件|*.xls|Excel 2007文件|*.xlsx"; if (DialogResult.OK.Equals(saveFileDlg.ShowDialog()))
{
//实例化一个参数容器,并加载模板填充规则文件 ParameterCollection collection = new ParameterCollection(); collection.Load(@"Templete\excelreport.xml");
//实例化一个元素格式化器列表 List<ElementFormatter> formatters = new List<ElementFormatter>(); formatters.Add(new CellFormatter(collection["Sheet1", "time"], "第一次")); //添加一个单元格格式化器
//添加一个Table格式化器
formatters.Add(new TableFormatter<Student>(collection["Sheet1", "Name"].X, list,
new TableColumnInfo<Student>(collection["Sheet1", "Name"].Y, t => t.Name),
new TableColumnInfo<Student>(collection["Sheet1", "Team"].Y, t => t.Team))
); //导出文件到本地
ExportHelper.ExportToLocal(@"Templete\excelreport.xls", saveFileDlg.FileName,
new SheetFormatterContainer("Sheet1", formatters));

使用aspose.cells和模板导出

Aspose是一个非常强大的“收费控件”,我们要用到的是aspose.cells,这个控件的使用不需要引用其他别的控件,其次代码也非常简单。具体的使用方法参考Aspose.Cells 根据Excel模板导出数据统计

模板如下

aaarticlea/png;base64,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" alt="" />

 WorkbookDesigner designer = new WorkbookDesigner();
//Server.MapPath("./")
string path = System.AppDomain.CurrentDomain.BaseDirectory + "/Templete/aspose.xls";
designer.Open(path);
designer.SetDataSource(dt);
designer.Process();
//Save the excel file
string fileToSave = System.AppDomain.CurrentDomain.BaseDirectory + "Templete/JH_ManageExcel.xls";
if (File.Exists(fileToSave))
{
File.Delete(fileToSave);
} designer.Save(fileToSave, FileFormatType.Excel2003);
//打开Excel文件
Process.Start(fileToSave);

总结


本文只是简单的介绍几种Excel的导出方法,并没有具体的深入研究。这三种方式各有各的特点,第一种方法比较通用,适合那些需要多种导出且对导出的样式没有要求的项目,后边两种适合那些对导出数据有样式需求的项目。第二种方式所用的类库开源、免费但是代码比较繁琐,且还需要生成Xml的配置文件使起来还是比较麻烦,第三种使用起来最好、最简便,不过需要收费。如果用在商业项目中还是需要斟酌的。

上一篇:C#分隔字符串时遭遇空值


下一篇:微软跨平台ORM框架之EFCore