找回密码
 立即注册

QQ登录

只需一步,快速开始

ANET
金牌服务用户   /  发表于:2024-2-26 16:26  /   查看:3698  /  回复:9
1金币
本帖最后由 ANET 于 2024-2-26 16:28 编辑

问题描述:

AR Section Report, 同样的报表,导出 pdf/html正常,用ArExports.Excel.Section.XlsExport导出xls也没问题,

用ArExports.Excel.Section.XlsExport导出xlsx的时候报如下错误,仅少数报表有这个问题,其它大部分报表导出xlsx也正常,


System.Exception: Error running report ---> System.ArgumentException: '.', hexadecimal value 0x00, is an invalid character.
at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)
at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd) at System.Xml.XmlUtf8RawTextWriter.WriteString(String text) at System.Xml.XmlWellFormedWriter.WriteString(String text) at DocumentFormat.OpenXml.OpenXmlElement.WriteTo(XmlWriter xmlWriter) at DocumentFormat.OpenXml.OpenXmlCompositeElement.WriteContentTo(XmlWriter w) at DocumentFormat.OpenXml.OpenXmlElement.WriteTo(XmlWriter xmlWriter) at DocumentFormat.OpenXml.OpenXmlCompositeElement.WriteContentTo(XmlWriter w) at DocumentFormat.OpenXml.OpenXmlPartRootElement.WriteTo(XmlWriter xmlWriter) at DocumentFormat.OpenXml.OpenXmlPartRootElement.Save(Stream stream) at DocumentFormat.OpenXml.OpenXmlPartRootElement.SaveToPart(OpenXmlPart openXmlPart) at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.TrySavePartContent(OpenXmlPart part) at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.SavePartContents(Boolean save)
at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Dispose(Boolean disposing) at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Dispose() at GrapeCity.ActiveReports.SpreadBuilder.I.?.?(Stream ?)
at GrapeCity.ActiveReports.SpreadBuilder.I.?.Export(Workbook workbook, Stream outputStream)
at ReportRunner.RunReport(SectionReport rpt, Boolean bGenerateStream, Boolean bSetExcelMinColWidth, Boolean bEnableExcelCellMerging) in C:\Code\AN\rserver-ii\RServerII\ReportRunnerBase.vb:line 1034 --- End of inner exception stack trace ---
at ReportRunner.RunReport(SectionReport rpt, Boolean bGenerateStream, Boolean bSetExcelMinColWidth, Boolean bEnableExcelCellMerging) in




想问下有没有参数设置啥的,让XML不用校验内容直接导出,我看网上有如下设置的:
XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.CheckCharacters = false;
但是咱们没直接用到这个类,想问下该如何设置,谢谢。

最佳答案

查看完整内容

您看一下您的数据是不是有乱码,因为导出XLSX文件首先需要打开XML SDK来执行,所以导出错误: 您看下您是不是有乱码或者特殊字符,有的话,您先处理一下,再试试看。

9 个回复

倒序浏览
最佳答案
最佳答案
Eden.SunWyn认证
超级版主   /  发表于:2024-2-26 16:26:35
来自 4#


您看一下您的数据是不是有乱码,因为导出XLSX文件首先需要打开XML SDK来执行,所以导出错误:


您看下您是不是有乱码或者特殊字符,有的话,您先处理一下,再试试看。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-2-26 17:04:42
2#
问题描述:区域报表导出 excel


问题解决:
您好,区域报表导出 excel 您参考一下下面的文档:
https://developer.mescius.com/ac ... e/excel-export.html
回复 使用道具 举报
ANET
金牌服务用户   /  发表于:2024-2-27 16:37:04
3#
本帖最后由 ANET 于 2024-2-27 16:41 编辑

谢谢。
同样的问题以前报过:
1. https://gcdn.grapecity.com.cn/showtopic-148719-2-1.html
2.  https://gcdn.grapecity.com.cn/showtopic-26367-1-1.html


这个帖子最后也没说咋解决的,貌似是数据乱码造成的。

回复 使用道具 举报
ANET
金牌服务用户   /  发表于:2024-2-28 11:02:45
5#
嗯,我看了,数据没问题,还在调查,数据没发现有乱码的,不知道是不是报表字段的Style属性中有乱码。
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-2-28 11:17:36
6#
ANET 发表于 2024-2-28 11:02
嗯,我看了,数据没问题,还在调查,数据没发现有乱码的,不知道是不是报表字段的Style属性中有乱码。

不仅是乱码,还有特殊字符,比如 &  >  < " '  这些好像也是不支持的。如果有的话,您看是不是可以转义一下。
回复 使用道具 举报
ANET
金牌服务用户   /  发表于:2024-2-28 13:41:49
7#
找到原因了,下面的一行代码导致的:
Label38.Text = vbNullChar
Label的类型是: GrapeCity.ActiveReports.SectionReportModel.Label,你们也可以试试
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-2-28 15:27:01
8#
ANET 发表于 2024-2-28 13:41
找到原因了,下面的一行代码导致的:
Label38.Text = vbNullChar
Label的类型是: GrapeCity.ActiveRepor ...

Label38.Text = vbNullChar 是给Label38赋值为空字符串,字符串应该是""  ,这应该属于特殊字符,所以会出这种问题。
回复 使用道具 举报
ANET
金牌服务用户   /  发表于:2024-4-17 10:25:06
9#
还有类似空的控制字符,比如 Chr(1), Chr(2)...... Chr(8) 这种字符都不行。
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-4-17 14:16:09
10#
ANET 发表于 2024-4-17 10:25
还有类似空的控制字符,比如 Chr(1), Chr(2)...... Chr(8) 这种字符都不行。

您看一下上面的回复,xml底层对特殊字符都是不支持的。所以会是这种情况,您换成xls文件试试呢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部