博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 导出 Excel
阅读量:6891 次
发布时间:2019-06-27

本文共 9790 字,大约阅读时间需要 32 分钟。

本文使用 org.in2bits.MyXls.dll 进行导出 Excel 的过程讲解

功能实现: 将GridView信息导出Excel表,如果列表信息是根据 时间 筛选出来, 那么Excel表的标题包含时间 , 例如 :2011-07-05~2011-11-09  ***-客户信息列表

第一步: 创建 Excel

 

 

/*****************************创建Excel star*****************************/         org.in2bits.MyXls.XlsDocument doc = new org.in2bits.MyXls.XlsDocument();         doc.FileName = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + ".xls";//excel文件名称         org.in2bits.MyXls.Worksheet sheet = doc.Workbook.Worksheets.Add("sheet1");//Worksheets.AddNamed("sheet1");//Excel工作表名称         org.in2bits.MyXls.Cells cells = sheet.Cells; /*****************************创建Excel  end *****************************/

 第二步:自定义样式

/*****************************sheett标题样式  star *****************************/         MergeArea ma = new MergeArea(1, 1, 1, 15);                    //合并第1行、第1列 到 第1行、第14列         sheet.AddMergeArea(ma);                                       //填加合并单元格         XF titleXF = doc.NewXF();                                    // 为xls生成一个XF实例,XF是单元格格式对象         titleXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中         titleXF.VerticalAlignment = VerticalAlignments.Centered;     // 垂直居中         titleXF.UseBorder = true;              // 使用边框         titleXF.TopLineStyle = 1;              // 上边框样式         titleXF.TopLineColor = Colors.Black;   // 上边框颜色         titleXF.LeftLineStyle = 1;             // 左边框样式         titleXF.LeftLineColor = Colors.Black;  // 左边框颜色         titleXF.RightLineStyle = 1;            // 右边框样式         titleXF.RightLineColor = Colors.Black; // 右边框颜色         titleXF.Font.FontName = "宋体";        // 字体         titleXF.Font.Bold = true;              // 是否加楚         titleXF.Font.Height = 12 * 20;         // 字大小(字体大小是以 1/20 point 为单位的) /*****************************sheett标题样式   end *****************************/ /*****************************列标题样式 star *****************************/         XF columnTitleXF = doc.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象         columnTitleXF.HorizontalAlignment = HorizontalAlignments.Centered;  // 设定文字居中         columnTitleXF.VerticalAlignment = VerticalAlignments.Centered;      // 垂直居中         columnTitleXF.UseBorder = true;                 // 使用边框         columnTitleXF.TopLineStyle = 1;                 // 上边框样式         columnTitleXF.TopLineColor = Colors.Black;      // 上边框颜色         columnTitleXF.BottomLineStyle = 1;              // 下边框样式         columnTitleXF.BottomLineColor = Colors.Black;   // 下边框颜色         columnTitleXF.LeftLineStyle = 1;                // 左边框样式         columnTitleXF.LeftLineColor = Colors.Black;     // 左边框颜色         columnTitleXF.Pattern = 1;                      // 单元格填充风格。如果设定为0,则是纯色填充(无色),1代表没有间隙的实色         columnTitleXF.PatternBackgroundColor = Colors.Red; // 填充的底色         columnTitleXF.PatternColor = Colors.Default2F;  // 填充背景色    /*****************************列标题样式 end *****************************/ /*****************************列内容样式 star *****************************/         XF dataXF = doc.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象         dataXF.HorizontalAlignment = HorizontalAlignments.Centered; // 设定文字居中         dataXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中         dataXF.UseBorder = true;                 // 使用边框         dataXF.LeftLineStyle = 1;                // 左边框样式         dataXF.LeftLineColor = Colors.Black;     // 左边框颜色         dataXF.BottomLineStyle = 1;              // 下边框样式         dataXF.BottomLineColor = Colors.Black;   // 下边框颜色         dataXF.Font.FontName = "宋体";         dataXF.Font.Height = 9 * 20; // 设定字大小(字体大小是以 1/20 point 为单位的)         dataXF.UseProtection = false; // 默认的就是受保护的,导出后需要启用编辑才可修改         dataXF.TextWrapRight = true; // 自动换行 /*****************************列内容样式 end *****************************/ /*****************************列样式 end *****************************/         ColumnInfo col0 = new ColumnInfo(doc, sheet);   // 列对象         col0.ColumnIndexStart = 0;                      // 起始列为第1列,索引从0开始         col0.ColumnIndexEnd = 0;                        // 终止列为第1列,索引从0开始         col0.Width = 6 * 256;                           // 列的宽度计量单位为 1/256 字符宽         sheet.AddColumnInfo(col0);                      // 把格式附加到sheet页上         ColumnInfo col2 = new ColumnInfo(doc, sheet);   // 列对象         col2.ColumnIndexStart = 1;                      // 起始列为第1列,索引从0开始         col2.ColumnIndexEnd = 9;                        // 终止列为第1列,索引从0开始         col2.Width = 14 * 256;                           // 列的宽度计量单位为 1/256 字符宽         sheet.AddColumnInfo(col2);                      // 把格式附加到sheet页上         ColumnInfo col1 = new ColumnInfo(doc, sheet);              col1.ColumnIndexStart = 10;                      // 起始列为第1列,索引从0开始         col1.ColumnIndexEnd =12;                        // 终止列为第1列,索引从0开始         col1.Width =8 * 256;                           // 列的宽度计量单位为 1/256 字符宽         sheet.AddColumnInfo(col1);                      // 把格式附加到sheet页上         ColumnInfo col4 = new ColumnInfo(doc, sheet);         col4.ColumnIndexStart = 13;                      // 起始列为第1列,索引从0开始         col4.ColumnIndexEnd = 13;                        // 终止列为第1列,索引从0开始         col4.Width = 18 * 256;                           // 列的宽度计量单位为 1/256 字符宽         sheet.AddColumnInfo(col4);                      // 把格式附加到sheet页上         ColumnInfo col3 = new ColumnInfo(doc, sheet);         col3.ColumnIndexStart = 9;                      // 起始列为第1列,索引从0开始         col3.ColumnIndexEnd = 9;                        // 终止列为第1列,索引从0开始         col3.Width = 22 * 256;                           // 列的宽度计量单位为 1/256 字符宽         sheet.AddColumnInfo(col3);                      // 把格式附加到sheet页上 /*****************************列样式 end *****************************/

第三步:添加内容

/*****************************sheet标题   star *****************************/         Cell topCell; string TitleName = "客户信息列表"; if (strTime.Trim().Length > 0 && endTime.Trim().Length > 0)         {
if (Convert.ToDateTime(strTime).ToString("yyyy-MM-dd") == Convert.ToDateTime(endTime).ToString("yyyy-MM-dd")) {
TitleName = endTime + "客户信息列表"; } else {
TitleName = strTime + "~" + endTime + "客户信息列表"; } } topCell = cells.Add(1, 1, TitleName, titleXF); /*****************************sheet标题 end *****************************/ /*****************************列标题 star *****************************/ int colnum = this.gv_comlist.Columns.Count; //获取gridview列数 Cell testCell; int j = 0; for (int i = 0; i < colnum - 2; i++) {
/* 如果管理员是salescash, 将导出信息阉掉前三列 * */ if ("salescash".Equals(Session["UserID"])) {
if (i == 1 || i == 2 || i == 3) {
continue; } } testCell = cells.Add(2, (j + 1), this.gv_comlist.Columns[i].HeaderText, columnTitleXF);//导出gridView列名 j++; } /*****************************列标题 end *****************************/ /*****************************列内容 star *****************************/ for (int i = 0; i < dt.Rows.Count; i++) {
cells.Add((i + 3), 1, Convert.ToString(i + 1), dataXF); if ("salescash".Equals(Session["UserID"])) {
//cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Content"])); cells.Add((i + 3), 2, Convert.ToString(dt.Rows[i]["Name"]), dataXF); cells.Add((i + 3), 3, Convert.ToString(dt.Rows[i]["Contry"]), dataXF); cells.Add((i + 3), 4, Convert.ToString(dt.Rows[i]["City"]), dataXF); cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Phone"]), dataXF); cells.Add((i + 3), 6, Convert.ToString(dt.Rows[i]["Tel"]), dataXF); cells.Add((i + 3), 7, Convert.ToString(dt.Rows[i]["Emial"]), dataXF); cells.Add((i + 3), 8, Convert.ToString(dt.Rows[i]["status"]), dataXF); cells.Add((i + 3), 9, Convert.ToString(dt.Rows[i]["newActivate"]), dataXF); cells.Add((i + 3), 10, Convert.ToString(dt.Rows[i]["newDownBool"]), dataXF); cells.Add((i + 3), 11, Convert.ToString(dt.Rows[i]["createdate"]), dataXF); cells.Add((i + 3), 12, Convert.ToString(dt.Rows[i]["Market"]), dataXF); } else {
cells.Add((i + 3), 2, Convert.ToString(dt.Rows[i]["Campaign"]), dataXF); cells.Add((i + 3), 3, Convert.ToString(dt.Rows[i]["Source"]), dataXF); cells.Add((i + 3), 4, Convert.ToString(dt.Rows[i]["Medium"]), dataXF); //cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Content"])); cells.Add((i + 3), 5, Convert.ToString(dt.Rows[i]["Name"]), dataXF); cells.Add((i + 3), 6, Convert.ToString(dt.Rows[i]["Contry"]), dataXF); cells.Add((i + 3), 7, Convert.ToString(dt.Rows[i]["City"]), dataXF); cells.Add((i + 3), 8, Convert.ToString(dt.Rows[i]["Phone"]), dataXF); cells.Add((i + 3), 9, Convert.ToString(dt.Rows[i]["Tel"]), dataXF); cells.Add((i + 3), 10, Convert.ToString(dt.Rows[i]["Emial"]), dataXF); cells.Add((i + 3), 11, Convert.ToString(dt.Rows[i]["status"]), dataXF); cells.Add((i + 3), 12, Convert.ToString(dt.Rows[i]["newActivate"]), dataXF); cells.Add((i + 3), 13, Convert.ToString(dt.Rows[i]["newDownBool"]), dataXF); cells.Add((i + 3), 14, Convert.ToString(dt.Rows[i]["createdate"]), dataXF); cells.Add((i + 3), 15, Convert.ToString(dt.Rows[i]["Market"]), dataXF); } } /*****************************列内容 end *****************************/

最后  : 

doc.Send();//把写好的excel文件输出到客户端

转载于:https://www.cnblogs.com/pingping/archive/2011/12/15/2288669.html

你可能感兴趣的文章
linux三剑客之awk
查看>>
28BYJ-48步进电机迁移转变精度与深化剖析
查看>>
apache与PHP结合,apache默认虚拟机
查看>>
基于域的无线安全认证方案
查看>>
Android平板开发永久实现全屏的方法
查看>>
windows远程连接失败的原因
查看>>
我的友情链接
查看>>
Centos下邮件服务器(postfix)的配置(一)
查看>>
Thread类常用方法
查看>>
Yarn大体框架和工作流程研究
查看>>
vue学习笔记(一)
查看>>
微软专家推荐11个Chrome 插件
查看>>
三天学会HTML5——SVG和Canvas的使用
查看>>
MySql基本操作(二)
查看>>
我的友情链接
查看>>
文件上传时几个Content-type
查看>>
我的友情链接
查看>>
Exchange Server 2013 集成Office Web App
查看>>
字节转换工具,在线字节转换工具
查看>>
实验心得
查看>>