关于数据筛选后Excel导出下载

2016.5.11

二种方法:

前台筛选器

1.生成文件流下载

①后台接受form表单,拼接sql

        public void Down(StudentI i, int Status = 0)
        {
            List<string> ls = new List<string>();
            List<SqlParameter> lp = new List<SqlParameter>();

            if (i.RecommName != null)
            {
                ls.Add("[email protected]");
                lp.Add(new SqlParameter("@Recomm", i.Recomm));
            }
            if (i.DateTime != 0)
            {
                ls.Add("[email protected]");
                lp.Add(new SqlParameter("@DateTime", i.DateTime));
            }

            ///取值范围
            DownBLL.DownStudenI(ls, lp.ToArray(), "学员管理");
        }

②利用sql查询出DataTable

        public static void DownStudenI(List<string> name, SqlParameter[] parameter, string Title)
        {
            string sql = "select * from StudentI where ";
            foreach (var i in name)
                sql += i + " and ";
            sql += " 0=0";

            DataTable dt = sd.Search(sql, parameter);
            ExcelHelper.CreateExcelToDown(dt, Title);
        }

③利用NOPI将文件写成流下载

        /// <summary>
        /// 表转化成excel并且下载
        /// </summary>
        /// <param name="dt">表</param>
        /// <param name="title">文件名</param>
        public static void CreateExcelToDown(DataTable dt, string title)
        {
            using (Workbook book = new HSSFWorkbook())
            {
                Sheet sheet = book.CreateSheet("sheet1");

                Row headerrow = sheet.CreateRow(0);
                CellStyle style = book.CreateCellStyle();
                style.Alignment = HorizontalAlignment.CENTER;
                //1.转化表头
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    Cell cell = headerrow.CreateCell(i);
                    cell.CellStyle = style;
                    cell.SetCellValue(dt.Columns[i].ColumnName);
                }
                //2.填写数据
                int RowLen = dt.Rows.Count;
                int ColLen = dt.Columns.Count;
                for (int i = 0; i < RowLen; i++)
                {
                    DataRow dr = dt.Rows[i];
                    Row r = sheet.CreateRow((i+1));
                    for (int j = 0; j < ColLen; j++)
                    {
                        r.CreateCell(j).SetCellValue(dr[j].ToString());
                    }
                }
                //3.下载
                using (MemoryStream ms = new MemoryStream())
                {
                    book.Write(ms);
                    HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode(title + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8)));
                    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                    HttpContext.Current.Response.End();
                }
            }
        }

这个方法好在查找1边sql就可以下载,但是excel中文列名的话,我觉得就要在sql里面as比较麻烦

2.直接写Html

①查找要的所有数据

②在所有数据里面用Linq.where()查出要使用的数据

③然后把模型传入类中,生成Html代码

④然后写出网站供下载

时间: 2024-10-11 06:40:07

关于数据筛选后Excel导出下载的相关文章

数据使用Excel导出下载

此方法导出格式为xls 前端使用a标签链接实现 使用button按钮利用ajax传递请求时会报错,这里需要注意,此问题后期探讨,具体实现方式后期更新再议 Excel导出工具类 public class ExcelUploadUtil { static final short borderpx = 1; /** * 导出excel表格 * @param head 表头 * @param body 数据信息 * @return */ public static HSSFWorkbook expExc

java SSM框架下实现数据EXCEL导出下载功能

最近公司项目有个需求,是导出列表中的数据并下载.如下图所示的列表数据,并且该数据不是一个表里的数据. -------------------------------------------------华丽的分割线------------------------------------------------------------------------------------------------------实现步骤如下:本项目实现环境为maven项目1.引入jia包: 2.拷贝Export

excel表格中如何将内容粘贴到筛选后的可见单元格[转]

默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到相应行.2.执行你的"自动筛选"过程.3.在右边再添加的一"辅助2"列,用鼠标选定该列所有行,输入1,按Ctrl+回车.(即在所有筛选结果行的该列增加一个1,其他被隐藏的行该列为空白)4.退出筛选状态,将全表按"辅助2"列排序,你的筛选结果就集中在连

list数据导出excel并且下载到本地

最近做grid列表相关数据导出到excel功能,根据自己选择的列导出成excel 并且下载到本地.下载位置根据配置文件进行的配置.废话不说 直接上关键代码: 需要引入相关的包: compile 'net.sourceforge.jexcelapi:jxl:2.6.12'这是我项目中gradle的配置. @Override public void exportExcel(Integer[] ids,HttpServletResponse response) { List<WithdrawDepos

C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel

其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(object sender, EventArgs e) { OpenFileDialog fd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格 ofd.Filter = "表格|*.xls";//打开文件对话框筛选器 string strPath;/

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

一、【Spring Boot】 Excel文件导出下载

   Spring Boot Excel 文件导出 目标: 实现Excel文件的直接导出下载,后续开发不需要开发很多代码,直接继承已经写好的代码,增加一个Xml配置就可以直接导出. 实现: 1.抽象类 BaseExcelView 继承 webmvc 的 AbstractXlsxStreamingView 抽象类, AbstractXlsxStreamingView 是webmvc继承了最顶层View接口,是可以直接大量数据导出的不会造成内存泄漏问题,即 SXSSFWorkbook 解决了内存问题

利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序 HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据,难免会含有方便操作的 主键ID这列的记录.现在项目需要在easyUI的DataGrid中显示的数据能全部导出Excel,包括DataGrid中的中文标题,其他的统统不 要. 完成该功能所需的工具和环境:Newtonsoft.Json序列化和反序列化类库.easyUI前端UI框架.HttpHandl

Java导出excel并下载功能

我们使用的导出并下载功能是利用一个插件叫POI的插件提供的导出功能,很实用:首先先导入Jar包: Jar包下载地址:http://poi.apache.org/   官方文档地址:http://poi.apache.org/spreadsheet/quick-guide.html Action代码: public void exportToExcel(List<PortalContactVO> data) throws Exception { this.setEnableAccessReque