找回密码
 立即注册

QQ登录

只需一步,快速开始

kbw.qin

初级会员

22

主题

60

帖子

252

积分

初级会员

积分
252

[已处理] ActiveReports14

kbw.qin
初级会员   /  发表于:2021-5-17 12:51  /   查看:1946  /  回复:7
本帖最后由 Crystal.Li 于 2021-5-19 16:26 编辑

报表导出成EXCEL,能不能把EXCEL里面的单元格都默认成数值,而不是文字列

7 个回复

倒序浏览
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-5-19 16:27:37
沙发
您好,这个目前没有设置项。不过您可以去【产品需求】版块提需求哦~ 我们产品经理可以评估是否可增加此功能。
回复 使用道具 举报
kbw.qin
初级会员   /  发表于:2021-6-3 16:12:12
板凳
不好意思,再确认一下,我们讨论的是否是同一个内容。
通过 Angular 在前台使用 Viewer 导出 Excel 时, Excel 的单元格类型全部只能被强制设为文字类型?无法根据数据的类型(数值,文字,日期等)来自动设置单元格类型,我可以这么理解吗?
回复 使用道具 举报
kbw.qin
初级会员   /  发表于:2021-6-3 16:17:37
地板
https://demo.grapecity.com.cn/ActiveReports/ASPNET/Controlexplorer/Viewers/Default.aspx?category=1001&action=T4

我在上面这个你们官网上的 Demo 导出的 Excel,好像可以正确表示数值项目的。
这有什么特别的吗?
回复 使用道具 举报
kbw.qin
初级会员   /  发表于:2021-6-3 16:35:59
5#
本帖最后由 kbw.qin 于 2021-6-3 17:41 编辑

我这边现状是:下面这个代码 1 里的 settings.LocateDataSource = args => args.ReportPreview(app); 返回的是代码块 2 里返回的 Datatable
然后导出的 Excel(参照附件,有修改) 里的数值项目,全部以文字项目储存,无法进行 SUM 之类的算术运算。
请问下,这个是我代码有问题,还是就是这样子的?

  1. return app.UseReporting(settings =>
  2. {
  3.     settings.UseCustomStore(template => new PageReport().ConvertKbwReport(Path.Combine(configuration.GetReportTemplateStoragePath(), template)));
  4.     settings.UseCompression = true;
  5.     settings.LocateDataSource = args => args.ReportPreview(app);
  6. });
复制代码

  1. var reader = conn.ExecuteReader(finalSql, queryParam);
  2. var table = new DataTable();
  3. while (reader.Read())
  4. {
  5.     if (table.Columns.Count == 0)
  6.     {
  7.         for (var i = 0; i < reader.FieldCount; i++)
  8.         {
  9.             table.Columns.Add(reader.GetName(i));
  10.         }
  11.     }
  12.     var row = new object[reader.FieldCount];
  13.     for (var i = 0; i < reader.FieldCount; i++)
  14.     {
  15.         if (reader.IsDBNull(i))
  16.         {
  17.             row[i] = string.Empty;
  18.         }
  19.         else
  20.         {

  21.             row[i] = reader.GetValue(i);
  22.         }
  23.     }
  24.     table.Rows.Add(row);
  25. }
  26. return table;
复制代码



本帖子中包含更多资源

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

x
回复 使用道具 举报
Crystal.Li讲师达人认证 悬赏达人认证
论坛元老   /  发表于:2021-6-3 18:28:56
6#
您的原始数据是什么类型啊?原始数据是字符串吗?
回复 使用道具 举报
kbw.qin
初级会员   /  发表于:2021-6-4 08:01:50
7#
原始数据是数值类型。
这个导出的Excel里的单元格类型是由什么决定的?
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-6-4 10:18:03
8#
这个类型是根据你数据本身的类型确定的,但是有时候你的报表一列如果有几个类型,那么导出一个Excel好像就会是文本型了,需要你自己导出Excel手动调整下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部