找回密码
 立即注册

QQ登录

只需一步,快速开始

504385214

初级会员

26

主题

104

帖子

368

积分

初级会员

积分
368
504385214
初级会员   /  发表于:2021-7-14 17:22  /   查看:3736  /  回复:10
1金币
AR11.数据太多4000多页,导出报错,能不能导出的时候。比如1000页导出一个。一次导出

最佳答案

查看完整内容

您导出的时候,循环调用导出方法即可~ 每次传不同的报表参数~

10 个回复

倒序浏览
最佳答案
最佳答案
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-7-14 17:22:02
来自 11#
504385214 发表于 2021-7-16 10:48
我的意思是,想试下大数据导出,但是用户看到的就是一个报表展示。后台代码这么实现分文件导出

您导出的时候,循环调用导出方法即可~ 每次传不同的报表参数~
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-7-14 17:44:56
2#
您好,您导出的时候报什么错误?能截图看看吗?
回复 使用道具 举报
504385214
初级会员   /  发表于:2021-7-14 18:52:28
3#
本帖最后由 504385214 于 2021-7-14 19:27 编辑
James.Lv 发表于 2021-7-14 17:44
您好,您导出的时候报什么错误?能截图看看吗?

导出来内容是空白的,没有错误
回复 使用道具 举报
James.Lv讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2021-7-15 09:26:52
4#
504385214 发表于 2021-7-14 18:52
导出来内容是空白的,没有错误

您好,您检查一下报表设计是不是您把报表导出可见给关闭了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
504385214
初级会员   /  发表于:2021-7-15 09:34:16
5#
肯定没有关嘛。数据量小就没问题,数据大了才有问题。用大数据模拟下就知道了
回复 使用道具 举报
504385214
初级会员   /  发表于:2021-7-15 10:13:37
6#
  /// <summary>
        /// AR导出execl
        /// </summary>
        /// <param name="_document"></param>
        /// <param name="isSheet">是否多工作簿(一页一个)</param>
        public void New_Export(PageDocument _document, string defaultbbmc, bool isSheet = false)
        {
            SaveFileDialog dialog = new SaveFileDialog();
            //设置文件类型
            dialog.Filter = $@"Excel 97-2003工作簿(*.xls)(含页眉页脚)|*.xls|Excel 97-2003工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)(含页眉页脚)|*.xlsx|Excel 工作簿(*.xlsx)|*.xlsx|CSV(逗号分隔)(*.csv)|*.csv";//| Excel 启动宏的工作簿(*.xlsm)| *.xlsm
            //dialog.Filter = $@"Excel 97-2003工作簿(*.xls)|*.xls|Excel 工作簿(*.xlsx)|*.xlsx";
            //saveFileDialog1.FilterIndex = 1;//设置文件类型显示
            dialog.FileName = defaultbbmc;//设置默认文件名
            dialog.RestoreDirectory = true;//保存对话框是否记忆上次打开的目录
            dialog.CheckPathExists = true;//检查目录
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    #region 页眉页脚
                    if (dialog.FilterIndex == 1 || dialog.FilterIndex == 3)//含表头
                    {
                        #region 页眉页脚
                        if (_document.PageReport.Report.PageFooter != null)
                        {
                            _document.PageReport.Report.PageFooter.PrintOnFirstPage = true;
                            _document.PageReport.Report.PageFooter.PrintOnLastPage = true;
                        }
                        if (_document.PageReport.Report.PageHeader != null)
                        {
                            _document.PageReport.Report.PageHeader.PrintOnFirstPage = true;
                            _document.PageReport.Report.PageHeader.PrintOnLastPage = true;
                        }
                        #endregion
                    }
                    else
                    {
                        #region 页眉页脚
                        if (_document.PageReport.Report.PageFooter != null)
                        {
                            _document.PageReport.Report.PageFooter.PrintOnFirstPage = false;
                            _document.PageReport.Report.PageFooter.PrintOnLastPage = false;
                        }
                        if (_document.PageReport.Report.PageHeader != null)
                        {
                            _document.PageReport.Report.PageHeader.PrintOnFirstPage = false;
                            _document.PageReport.Report.PageHeader.PrintOnLastPage = false;
                        }
                        #endregion
                    }
                    #endregion

                    GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
                    if (dialog.FilterIndex == 1 || dialog.FilterIndex == 3)//含表头
                    {
                        #region 页眉页脚
                        if (_document.PageReport.Report.PageFooter != null)
                        {
                            _document.PageReport.Report.PageFooter.PrintOnFirstPage = true;
                            _document.PageReport.Report.PageFooter.PrintOnLastPage = true;
                        }
                        if (_document.PageReport.Report.PageHeader != null)
                        {
                            _document.PageReport.Report.PageHeader.PrintOnFirstPage = true;
                            _document.PageReport.Report.PageHeader.PrintOnLastPage = true;
                        }
                        #endregion
                    }
                    else
                    {
                        #region 页眉页脚
                        if (_document.PageReport.Report.PageFooter != null)
                        {
                            _document.PageReport.Report.PageFooter.PrintOnFirstPage = false;
                            _document.PageReport.Report.PageFooter.PrintOnLastPage = false;
                        }
                        if (_document.PageReport.Report.PageHeader != null)
                        {
                            _document.PageReport.Report.PageHeader.PrintOnFirstPage = false;
                            _document.PageReport.Report.PageHeader.PrintOnLastPage = false;
                        }
                        #endregion
                    }
                    if (isSheet)//两个true就是一个工作簿一页
                    {
                        XlsExport1.MultiSheet = true;//多工作簿
                        XlsExport1.Pagination = true;//一个工作簿中显示多页数据(表头表位会重复)
                    }
                    else
                    {
                        XlsExport1.MultiSheet = false;//多页
                        XlsExport1.Pagination = false;//分页
                    }

                    XlsExport1.UseCellMerging = true;//单元格合并
                    XlsExport1.UseDefaultPalette = false;//使用默认调色板
                    XlsExport1.AutoRowHeight = true;//自动行高
                    XlsExport1.DisplayGridLines = true;//显示网格线
                    XlsExport1.RemoveVerticalSpace = true;//删除垂直空间
                    XlsExport1.Export(_document, dialog.FileName);
                    if (dialog.FilterIndex == 5)//导出csv格式
                    {
                        string _name = dialog.FileName.Replace(".csv", ".xls");

                        if (XLSSavesaCSV(_name, true))
                            XtraMessageBox.Show("导出成功!");

                        ////载入xls文档
                        //Workbook workbook = new Workbook();
                        //workbook.LoadFromFile(_name);
                        ////获取第一张工作表
                        //Worksheet sheet = workbook.Worksheets[0];
                        ////保存为csv格式
                        //sheet.SaveToFile(dialog.FileName.Replace(".xls", "").Replace(".xlsx", "").Replace(".csv", "") + ".csv", ",", Encoding.Default);
                        //File.Delete(_name);//删除原execl文件
                    }
                    else
                        XtraMessageBox.Show("导出成功!");
                    return;


                    string dclj = dialog.FileName.Substring(0, dialog.FileName.LastIndexOf("\\"));
                    string filename = dialog.FileName.Substring(dialog.FileName.LastIndexOf("\\") + 1);
                    // Create an output directory.
                    System.IO.DirectoryInfo outputDirectory = new System.IO.DirectoryInfo(dclj);
                    outputDirectory.Create();
                    // Provide settings for your rendering output.
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();

                    if (dialog.FilterIndex == 1 || dialog.FilterIndex == 2 || dialog.FilterIndex == 5)
                        excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
                    else
                        excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xlsx;
                    if (isSheet)//两个true就是一个工作簿一页
                    {
                        excelSetting.MultiSheet = true;//多页
                        excelSetting.Pagination = true;//分页
                    }
                    else
                    {
                        excelSetting.MultiSheet = false;//多页
                        excelSetting.Pagination = false;//分页
                    }

                    excelSetting.UseDefaultPalette = false;//使用默认调色板
                    //excelSetting.UseCompression = true;//是否压缩(感觉没撒变化)

                    GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
                    // Set the rendering extension and render the report.
                    GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension excelRenderingExtension = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
                    //GrapeCity.ActiveReports.Export.Excel.Section.XlsExport XlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();

                    GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider(outputDirectory, System.IO.Path.GetFileNameWithoutExtension(filename));

                    // Overwrite output file if it already exists.
                    outputProvider.OverwriteOutputFile = true;

                    _document.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());

                    if (dialog.FilterIndex == 5)//导出csv格式
                    {
                        string _name = dialog.FileName.Replace(".csv", ".xls");

                        if (XLSSavesaCSV(_name, true))
                            XtraMessageBox.Show("导出成功!");

                        ////载入xls文档
                        //Workbook workbook = new Workbook();
                        //workbook.LoadFromFile(_name);
                        ////获取第一张工作表
                        //Worksheet sheet = workbook.Worksheets[0];
                        ////保存为csv格式
                        //sheet.SaveToFile(dialog.FileName.Replace(".xls", "").Replace(".xlsx", "").Replace(".csv", "") + ".csv", ",", Encoding.Default);
                        //File.Delete(_name);//删除原execl文件
                    }
                    else
                        XtraMessageBox.Show("导出成功!");
                }
                catch (Exception ee)
                {
                    XtraMessageBox.Show("导出失败;\n" + ":文件已被打开,请换名字保存,或关闭该文件");
                }
            }
        }
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-7-15 11:35:19
7#
您的报表文件是否已经超过6w行,如果超过6w行,excel2003导出会异常。分批导出的话,您可以拆分下报表,比如数据源过大导致报表有4000页,那么可以将数据源分批为4份,绑定到报表模板,分批打印4份。
回复 使用道具 举报
504385214
初级会员   /  发表于:2021-7-15 18:33:29
8#
Crystal.Li 发表于 2021-7-15 11:35
您的报表文件是否已经超过6w行,如果超过6w行,excel2003导出会异常。分批导出的话,您可以拆分下报表,比 ...

具体咋操作呢?有没有示例呢。
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-7-16 09:43:08
9#
可以使用报表参数实现,参考这个帖子:
https://www.grapecity.com.cn/blogs/report-parameter
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部