首页 > 其他分享 >【网友分享】处理fastreport导出没有自适应

【网友分享】处理fastreport导出没有自适应

时间:2024-11-26 15:48:15浏览次数:8  
标签:begin 分享 导出 dHeight fastreport pas MyWorkbook integer MyWorkGrid

FastReport VCL 2024.1.1在导出xls格式时,部分单元格内容没显示出来,以下方法是网友“海”让我分享给大家的,感谢“海”的分享!

 1、frxExportMatrix.pas

TfrxIEMStyle 增加StretchMode:TfrxStretchMode;

 2、frxExportMatrix.pas

function TfrxIEMatrix.AddStyle(Obj: TfrxView): integer; 

 

 3、frxExportMatrix.pas

function TfrxIEMatrix.AddStyleInternal(Style: TfrxIEMStyle): integer; 

 4、frxExportXML.pas

procedure TfrxXMLExport.ExportPage(Stream: TStream);   

增加:

      heightstr:='<Row ss:Height="' + frFloat2Str(drow, 2) + '">';//20241125 yanghai
      //20241125 yanghai 判断是否smMaxHeight
      i := FMatrix.GetCell(0, y);
      if (i <> -1) then
      begin
        if (FMatrix.GetStyleById(FMatrix.GetObjectById(i).StyleIndex).StretchMode=smMaxHeight) then
        begin
          heightstr:='<Row ss:AutoFitHeight="1" ss:Height="' + frFloat2Str(drow, 2) + '">';
        end;
      end;
      //20241125
      WriteExpLn(heightstr); //注释

 5、导出之后,因为有些是不需要自适应的,设了自适应之后,就变小了,用fpspreadsheet还原。

用fpspreadsheet把自适应变小的设置一下高度,memo我是设置0.88英寸对应24磅

procedure ChangeExcelFileSheetName(strFullName:string;sheetName:string);
var   MyWorkbook: TsWorkbook;
      MyWorksheet: TsWorksheet;
      MyWorkGrid:  TsWorkSheetGrid;
      iSheetCount:integer;
      iRow,iRowCount,iCol:integer;
      dHeight:double;
      HType:TsRowHeightType;
begin
  if not FileExists(strFullName) then exit;
  MyWorkGrid:=TsWorkSheetGrid.Create(nil);

  MyWorkbook:=TsWorkbook.Create;
  try
    MyWorkbook.ReadFromFile(strFullName,sfExcelXML);

    if MyWorkbook.GetWorksheetCount>0 then
    begin
      MyWorksheet := MyWorkbook.GetWorksheetByIndex(0);
      MyWorkGrid.LoadFromWorkbook(MyWorkbook);
      MyWorkGrid.SelectSheetByIndex(0);
      iRowCount:=MyWorkGrid.RowCount;

      for iRow:=0 to iRowCount-1 do
      begin
        //20240718 设置固定高度
        dHeight:=MyWorksheet.GetRowHeight(iRow,suPoints);

        if (ESimpleRoundto(dHeight,-2)<=24.17) and (MyWorksheet.GetRowHeightType(iRow)=rhtAuto) then
          MyWorksheet.WriteRowHeight(iRow,24,suPoints);

      end;

      MyWorksheet.Name := sheetName;

    end;
  finally
    MyWorkbook.WriteToFile(strFullName,sfExcelXML,True);
    MyWorkbook.free;
  end;

end; 

 

标签:begin,分享,导出,dHeight,fastreport,pas,MyWorkbook,integer,MyWorkGrid
From: https://www.cnblogs.com/qiufeng2014/p/18570314

相关文章

  • 职业技能竞赛-接口测试技术分享2
    引言        接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。     HTTP操作方式GET:获取指定资源的数据POST:向指定的资源提交数据,数据放在请求正文中PUT:提交数据到指定资源取代之前的数据DELETE:申请......
  • 报表控件FastReport VCL 中的本地化和语言切换
    在当今世界,向全球客户提供软件的能力至关重要。因此,FastReportVCL支持大约40种最广泛使用的语言,用于本地化用户界面。FastReportVCL是用于在软件中集成商务智能的现代解决方案。它提供了可视化模板设计器,可以访问最受欢迎的数据源,报告引擎,预览,将过滤器导出为30多种格式,并......
  • UINAPP全开源圈子源码分享,二开打造属于自己的圈子系统
    获取免费的圈子源码需要谨慎选择,确保源码的质量、合法性和安全性。在使用前,建议进行详细的代码审查和测试,并根据实际需求进行定制开发。同时,注意遵守开源项目的许可证要求,并确保用户数据的安全性。适用领域:一、行业圈子:让本行业的有交流和联系的圈子。二、地方圈子:在本地区,......
  • 如何快速涨到1000粉?如何快速涨粉!千川投流涨粉!运营干货分享!快速起号方法!
    在如今这个社交媒体高度发达的时代,虚假的粉丝随处可见。然而,对于真正有追求的抖音创作者和商家来说,虚假粉丝和低质量流量绝非他们所期望的。那么,如何在这纷繁复杂的社交媒体环境中,获取一批真实活跃的粉丝呢?今天,我们将为您带来一线曙光,揭开一个强大的秘密武器。通过这项官......
  • Python知识分享第十天
    “”"案例:假设你是一名教师,负责管理学生的成绩。你有一个名为grades.txt的文件,记录了所有学生的成绩。文件内容如下:Alice,85Bob,78Charlie,92David,88Eve,76你需要编写一个Python脚本,读取文件内容并计算出所有学生的平均成绩。“”"#思路一#stu_list=[]#......
  • 工程管理如何优化?2024年8款进度管理系统分享
    本文盘点了8款主流工程项目管理工具:1.Worktile;2.泛普软件;3.子筑云;4.蓝凌;5.智建云;6.Wrike;7.Smartsheet;8.用友U8。工程进度管理系统是确保工程项目按计划顺利进行的关键工具。这类系统通过提供任务调度、资源分配、进度跟踪和实时通讯等功能,帮助项目经理和团队成员保持项目的时间......
  • 【干货分享】网络安全从业者书单推荐
    推荐几本网络安全从业者必读的书籍一、计算机基础《网络硬件设备完全技术宝典》(第3版)本书共768页,包括交换机、路由器、安全设备、网络设备等重要和常用的网络设备,图文并茂,语言流畅,内容及其丰富。《深入理解计算机网络》本书共647页,是计算机网络领域的康鼎之作,内容十分权威......
  • C#Npoi实现DataTable数据导出到Excel支持多表头
    至于Npoi的引用就省略了1.相关类的代码usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.IO;usingSystem.Linq;usingNPOI.SS.UserModel;usingNPOI.XSSF.UserModel;usingNPOI.HSSF.UserModel;usingNPOI.SS.Util;///<summary>//......
  • Vue3+Typescript+Axios+.NetCore实现导出Excel文件功能
    前端代码//导出ExcelconstexportMaintenanceOrderSettlementItemExcelClick=async()=>{leturl=`${VITE_APP_API_URL}/api/app/maintenance/settlement-service-item/${currentMaintenanceOrderId.value}/${currentMaintenanceOrderSettlementRow.value.id}`;......
  • 【体验分享】各前端部署平台详细体验汇总
    为帮助开发者筛选出优质的免费网站部署服务,本文将从体验和数值上全面体验测试全球主流现代化前端部署平台。体验对象包括:Vercel、CloudflarePages、GitHubPages和新发现的腾讯云EdgeOnePages。测量指标包括全球访问时延、国内访问时延、GoogleLighthouse测量指标,以及用户......