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("\", "/");
原文地址:https://www.cnblogs.com/pangkang/p/7871534.html