zoukankan      html  css  js  c++  java
  • SSM导出报表为csv文件

    报表导出思路为,在后台用iDataReader将查询得到的数据写进文件并压缩,向前端返回文件位置的链接,在前端执行下载操作。

    web端:

      1. ajax请求url,将返回的路径json字符串解析并执行下载操作;

      2.controller接受请求,并返回路径的json字符串。

    服务端:

       1.idataReader将读取的数据库数据写入文件,使用方法ExportToFile。

    public static bool ExportToFile(this IDataReader dataReader, Dictionary<string, string> columnsNames, string fileName, bool writeHeader, out string errorMsg);

      示例:

    bridgedt.ExportToFile(columnNames, masterFile, true, out errMessage)

      2.然后将文件压缩,返回文件路径链接。

      3.路径示例

           string zipRelativeFileName = @"tmpfiles" + string.Format(fileName+ ".zip");
                string zipDir = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "tmpfiles", Guid.NewGuid().ToString());
                string zipFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, zipRelativeFileName);
                string masterFile = System.IO.Path.Combine(zipDir, fileName + ".csv");
                System.IO.Directory.CreateDirectory(zipDir);
                if (System.IO.File.Exists(zipFile))
                {
                    System.IO.File.Delete(zipFile);
                }
                ZipHelper zipHelper = newZipHelper(); //ZipHelper 为自定义类,实现压缩功能
                zipHelper.ZipFileDirectory(zipDir, zipFile); 
                System.IO.Directory.Delete(zipDir, true);
                return zipRelativeFileName.Replace("\", "/");
  • 相关阅读:
    jetty服务器
    好久不用的正则表达式
    mysql技术调优资料整理
    .net互转java 转行必备
    docker学习资料整理(持续更新中..)
    tcpdump来抓取执行的sql语句
    DDoS deflate
    Linux网络相关查询脚本
    linux下无法删除文件的原因
    linux使用FIO测试磁盘的iops 【转载】
  • 原文地址:https://www.cnblogs.com/pangkang/p/7871534.html
Copyright © 2011-2022 走看看