首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LocalReport到Excel

LocalReport到Excel
EN

Stack Overflow用户
提问于 2013-12-20 19:33:47
回答 1查看 1.9K关注 0票数 2

我使用下面的代码将一个简单的报表呈现给Excel或PDF,它在PDF中工作得很好,但是在Excel中,如果dtTable有超过64K的行,我会得到一个错误。我使用微软发布的ReportDefinition,允许从DataTable动态创建rdlc,可从此处获得http://www.gotreportviewer.com/

谁知道如何设置报表生成器,以便将电子表格拆分为每64K行的一个新选项卡?

代码语言:javascript
复制
        var localReport = new LocalReport();

        var availableFields = new List<string>();
        for (var i = 0; i < dtTable.Columns.Count; i++)
        {
            if (dtTable.Columns[i].ColumnName != "RowID")
            availableFields.Add(dtTable.Columns[i].ColumnName);
        }

        MemoryStream m_rdl = new MemoryStream();
        RdlGenerator gen = new RdlGenerator();

        gen.AllFields = availableFields;
        gen.SelectedFields = availableFields;
        gen.WriteXml(m_rdl);
        m_rdl.Position = 0;

        localReport.LoadReportDefinition(m_rdl);

        ReportDataSource reportDataSource = new ReportDataSource("MyData", dtTable);
        localReport.DataSources.Add(reportDataSource);
        string reportType = "Excel";
        string encoding;
        string fileNameExtension;
        string mimeType;

        string deviceInfo = "<DeviceInfo><OutputFormat>Excel</OutputFormat></DeviceInfo>"; Warning[] warnings; string[] streams; byte[] renderedBytes;
        renderedBytes = localReport.Render(reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-20 20:13:21

若要将每64K行放在单独的工作表中,请根据行号在报表中创建一个分页。

如果数据超过65k,如何在SSRS报表的Excel中导出数据

导出SSRS 2005中的EXCEL错误

发生此错误是因为报表查看器控件使用旧的BIFF Excel格式,该格式每个工作表只处理65536行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20710740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档