资源:excelService 服务 http://download.csdn.net/detail/istend/8060501

  • 排列问题

导出时,数字和字符的排列格式默认不一样,数字靠右,字符靠左,想让排列一致,有两个办法:

1 在绑定时,就做固定格式

2 导出时,将数字那一列转换为文本格式,例如以下

  1. protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
  2. {
  3. if (e.Row.RowType == DataControlRowType.DataRow)
  4. {
  5. //让数字以文本形式表示
  6. e.Row.Cells[4].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
  7. }
  8. }
  • 转换函数
  1. /// <summary>
  2. /// 导出button
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void btnExport_Click(object sender, System.Web.UI.ImageClickEventArgs e)
  7. {
  8. //导出文件名称
  9. string strFileName = "报表.xls";
  10.  
  11. //取原始数据。并绑定
  12. this.dagInfo.AllowPaging = false;
  13. this.dagInfo.AllowSorting = false;
  14. DataTable dt = BingData();
  15. this.dagInfo.DataSource = dt;
  16. this.dagInfo.DataBind();
  17. //使用本页面直接输出
  18. WHPT_WebApp.Statistics.GridStyleReport.ToExcel(this.dagInfo
  19. , strFileName,
  20. delegate(System.Web.UI.HtmlTextWriter writer)
  21. {
  22. writer.Write(string.Format("<table width=100%><tr><td align=center colspan=5>{0}</td></tr></table>", "报表"));
  23. }
  24. , null);
  25.  
  26. //恢复分页数据
  27. this.dagInfo.AllowPaging = true;
  28. this.dagInfo.AllowSorting = true;
  29. BindInfo(1, "");
  30. return;
  31. }
  32.  
  33. #endregion
  1. /// <summary>
  2. /// 转换成EXCEL
  3. /// </summary>
  4. /// <param name="ctl"></param>
  5. /// <param name="file_name"></param>
  6. public static void ToExcel(System.Web.UI.Control ctl, string file_name,RenderCallBack beforeRende,RenderCallBack afterRender)
  7. {
  8. //将控件数据导出成Excel文件
  9. if (string.IsNullOrEmpty(file_name))
  10. return;
  11. HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(file_name, System.Text.Encoding.UTF8));
  12. HttpContext.Current.Response.Charset = "GB2312"; //"UTF-8";
  13. HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
  14. HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
  15. ctl.Page.EnableViewState = true;
  16. System.IO.StringWriter tw = new System.IO.StringWriter();
  17. System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
  18. if (beforeRende != null)
  19. beforeRende(hw);
  20. ctl.RenderControl(hw);
  21. if (afterRender != null)
  22. afterRender(hw);
  23. HttpContext.Current.Response.Write(GetHtmlHeadText(tw.ToString()));
  24. HttpContext.Current.Response.End();
  25.  
  26. }

PS:此文仅做记录交流所用。不做他用

C#:excel导入导出的更多相关文章

  1. 利用反射实现通用的excel导入导出

    如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...

  2. Excel导入导出的业务进化场景及组件化的设计方案(上)

    1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候 ...

  3. 关于Excel导入导出的用例设计

    目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...

  4. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  5. Excel导入导出帮助类

    /// <summary>    /// Excel导入导出帮助类    /// 记得引入 NPOI    /// 下载地址   http://npoi.codeplex.com/rele ...

  6. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  7. Octopus——excel导入导出工具

    Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...

  8. TP5.0 excel 导入导出

    引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\clas ...

  9. Mego(04) - NET简单实现EXCEL导入导出

    前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...

  10. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

随机推荐

  1. VBA Promming入门教程——变量的使用

    数据类型 VBA中的数据类型可分为两种 示例 String Sub Main Dim s as string s = "Hello" msgbox(s) End Sub Singl ...

  2. CAD交互绘制虚线(网页版)

    用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...

  3. QT+创建两个不相干的窗口实现一个显示一个不显示

    因为两个窗口互不相干,所以需要重新创建一个窗口类subWidget subWidget.cpp文件 #ifndef SUBWIDGET_H #define SUBWIDGET_H #include & ...

  4. U盘制作安装盘后容量不能恢复的解决方案

    diskpartlist diskselect disk 0/1 --看具体U盘是0还是1clean

  5. 2012 noip提高 Vigenère 密码

    P1079 Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de VigenèreBlaisedeVigene`re 设计了一种多表密码加密算法―― VigenèreVigene ...

  6. 7 SQL 集合运算

    7 集合运算 7-1 表的加减法 本章将会和大家一起学习“集合运算”操作.在数学领域,“集合”表示“(各种各样的)事物的总和”:在数据库领域,表示“记录的集合”.具体来说,表.视图和查询的执行结果都是 ...

  7. C#对象初始化的探讨

    最近在弄MQ的性能监测数据埋点,无疑中用到一个Nstatsd的客户端,看到里面写过里面一种嵌套类的写法.代码如下: 客户端Client是一个密封的类,并且构造函数私有访问.然后又用一个嵌套类Curre ...

  8. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, i

    [ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal ...

  9. Java学习关于随机数工具类--Random类

    Random类是伪随机数生成器.之所以称为伪随机数(pseudorandom),是因为它们只是简单的均匀分布序列.Random类定义了以下构造函数: Random() Random(long seed ...

  10. Coreldraw绘制标准波浪线

    Coreldraw中如何绘制标准波浪线? 先画一根直线,单击工具栏中的“互动式工具组”,选择“互动式变形工具”, 再在弹出的属性栏中选择“拉链变形”,在幅度和频率中分别输入波形的波峰 到波底的值.波浪 ...