kbw.qin 发表于 2021-5-17 12:51:16

ActiveReports14

本帖最后由 Crystal.Li 于 2021-5-19 16:26 编辑

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

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

本帖最后由 kbw.qin 于 2021-6-3 17:41 编辑

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

return app.UseReporting(settings =>
{
    settings.UseCustomStore(template => new PageReport().ConvertKbwReport(Path.Combine(configuration.GetReportTemplateStoragePath(), template)));
    settings.UseCompression = true;
    settings.LocateDataSource = args => args.ReportPreview(app);
});

var reader = conn.ExecuteReader(finalSql, queryParam);
var table = new DataTable();
while (reader.Read())
{
    if (table.Columns.Count == 0)
    {
      for (var i = 0; i < reader.FieldCount; i++)
      {
            table.Columns.Add(reader.GetName(i));
      }
    }
    var row = new object;
    for (var i = 0; i < reader.FieldCount; i++)
    {
      if (reader.IsDBNull(i))
      {
            row = string.Empty;
      }
      else
      {

            row = reader.GetValue(i);
      }
    }
    table.Rows.Add(row);
}
return table;


Crystal.Li 发表于 2021-6-3 18:28:56

您的原始数据是什么类型啊?原始数据是字符串吗?

kbw.qin 发表于 2021-6-4 08:01:50

原始数据是数值类型。
这个导出的Excel里的单元格类型是由什么决定的?

KearneyKang 发表于 2021-6-4 10:18:03

这个类型是根据你数据本身的类型确定的,但是有时候你的报表一列如果有几个类型,那么导出一个Excel好像就会是文本型了,需要你自己导出Excel手动调整下
页: [1]
查看完整版本: ActiveReports14