首页 > 其他分享 >delphi TMS FlexCel 导出HTML

delphi TMS FlexCel 导出HTML

时间:2022-09-22 16:15:02浏览次数:48  
标签:文件 TMS const string FlexCel delphi HTML htmlFileName css

TMS FlexCel 导出HTML

属性和方法

TFlexCelHtmlExport

用于将 Excel 文件导出为 HTML 的组件。

unit

FlexCel.Render

TFlexCelHtmlExport.Create

constructor Create(const aWorkbook: TExcelFile);
constructor Create(const aWorkbook: TExcelFile; const aAllowOverwritingFiles: Boolean);

创建一个新的 TFlexCelHtmlExport 并将其分配给Excel文件。

重载

Create(TExcelFile, Boolean)

创建一个新的 TFlexCelHtmlExport 并将其分配给Excel文件,将AllowOverwritingFiles设置为所需的值。

参数

aWorkbook 包含此组件将导出的数据的Excel文件。

aAllowOverwritingFiles 当为true时,现有文件将被覆盖。

TFlexCelHtmlExport.Export

procedure Export(const htmlFileName: string; const relativeImagePath: string);
procedure Export(const htmlFileName: string; const relativeImagePath: string; css: ICssInformation);
procedure Export(const htmlFileName: string; const relativeImagePath: string; const relativeCssFileName: string);
procedure Export(const html: TFlexCelWriter; const fileName: string; css: ICssInformation);

重载

Export(string, string)Export(string, string, ICssInformation)Export(string, string, string)

将关联的Excel工作簿的活动工作表导出到文件。CSS 将在文件内部保存。

Export(TFlexCelWriter, string, ICssInformation)

将关联的Excel工作簿的活动工作表导出到TextWriter

请注意,您需要在 GetImageInformation 事件中提供用于保存图像的流(如果要保存图像)。

参数

htmlFileName 要创建的HTML文件的文件名。

relativeImagePath 将存储图像的文件夹,相对于htmlFileName。例如,如果 htmlFileNamec:\reports\html\index.htm ,而 relativeImagePathimages,则图像将保存在文件夹 c:\reports\html\images 中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。

css 使用此参数将所有 CSS 信息存储在外部文件中。如果要将 CSS 存储在 HTML 文件中,请将其设置为 nil。 如果要在多个文件之间共享 CSS,请确保将相同的 css 参数传递给所有Export调用。

relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileNamec:\reports ,而 relativeCssFileNamecss\data.css,则 css 文件将保存在 c:\reports\css\data.css 中。

html 将保存 HTML 文件的流。

fileName 用于生成支持文件的文件名。如果将其保留为空,则不会保存任何图像,因为它们将没有文件名。

TFlexCelHtmlExport.ExportAllVisibleSheetsAsTabs

procedure ExportAllVisibleSheetsAsTabs(const htmlPath: string; const htmlFileNamePrefix: string; const htmlFileNamePostfix: string; const relativeImagePath: string; const relativeCssFileName: string; const sheetSelector: TSheetSelector; const freeSheetSelectorAfterUse: Boolean = True; const OnSheetName: TOnSheetNameEventHandler = nil);

此方法会将 xls 文件中的所有可见工作表导出到 HTML 文件,将每个工作表写入不同的文件中。 这相当于在每个工作表上调用Export

参数

htmlPath 存储 HTML 文件的路径。(工作簿中每个工作表一个)

htmlFileNamePrefix 这是一个字符串,将在文件名的开头添加到每个生成的文件中。

htmlFileNamePostfix 这是一个字符串,将在文件名的末尾添加到每个生成的文件中。请确保在此处包含扩展名。

relativeImagePath 将存储图像的文件夹,相对于htmlFileName。例如,如果 htmlFileNamec:\reports\html\index.htm ,而 relativeImagePathimages,则图像将保存在文件夹 c:\reports\html\images 中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。

relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileNamec:\reports ,而 relativeCssFileNamecss\data.css,则 css 文件将保存在 c:\reports\css\data.css 中。请注意,css 将在所有工作表之间共享,因此只会创建一个文件。建议您在这里提供一个外部名称,这样CSS共享的网页更小。

sheetSelector 有关如何绘制可在工作表之间切换的选项卡的信息。 如果您不想包含工作表选择器,请将其设置为 nil

freeSheetSelectorAfterUse 如果为 true,此方法将在完成时释放作为参数传递的sheetSelector ,因此您不需要自己释放它。 如果你将 sheetselector 存储在一个变量中,并且想重复使用它,请将此变量设置为 false,否则调用此方法后该变量将无效。默认值 true

OnSheetName 使用此事件自定义创建文件的文件名,并使用与工作表名称不同的名称。默认值 nil

如果 htlmFileNamePrefix = "test_" 和 htmlFileNamePostfix = ".html",则 sheet1 将导出为 "test_sheet1.html"。 如果生成单个文件(MHTML 格式),将使用 htmlFileNamePrefix + htmlFileNamePostFix,没有工作表名称。 请注意,您可以在 OnSheetName 事件中将工作表名称更改为其他字符串,因此最终名称将是 htmlFileNamePrefix + "在 OnSheetName 中返回的字符串" + htmlFileNamePostfix

relativeImagePathrelativeCssFileName 的文件路径不存在,调用时会创建

relativeImagePathrelativeCssFileName 中不能有中文,导出的HTML中对路径中的中文进行了转码,导致加载时找不到文件

htmlFileNamePrefixhtmlFileNamePostfix 中不能有中文,导出的图片文件名中包含htmlFileNamePrefixhtmlFileNamePostfix中的字符串

TFlexCelHtmlExport.ExportAllVisibleSheetsAsOneHtmlFile

procedure ExportAllVisibleSheetsAsOneHtmlFile(const htmlFileName: string; const relativeImagePath: string; const relativeCssFileName: string; const sheetSeparator: string);
procedure ExportAllVisibleSheetsAsOneHtmlFile(const html: TFlexCelWriter; const htmlFileName: string; const relativeImagePath: string; const relativeCssFileName: string; const sheetSeparator: string);

ExportAllVisibleSheetsAsOneHtmlFile(string, string, string, string)

在同一个HTML文件中一个接一个地导出 xls 文件中的所有可见工作表。

ExportAllVisibleSheetsAsOneHtmlFile(TFlexCelWriter, string, string, string, string)

在同一个HTML流中一个接一个地导出 xls 文件中的所有可见工作表。

参数

htmlFileName 存储 HTML 文件的路径。

relativeImagePath 将存储图像的文件夹,相对于htmlFileName。例如,如果 htmlFileNamec:\reports\html\index.htm ,而 relativeImagePathimages,则图像将保存在文件夹 c:\reports\html\images 中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。

relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileNamec:\reports ,而 relativeCssFileNamecss\data.css,则 css 文件将保存在 c:\reports\css\data.css 中。

sheetSeparator 要在导出的所有不同工作表之间写入的 HTML 字符串。 例如,您可以在此处使用 <hr /> 添加一条水平线。 您还可以在此处使用特殊宏<#SheetName><#SheetCount><#SheetPos> <#PrevSheetName><#PrevSheetPos> 分别输入当前工作表名称、工作表数量和当前工作表。 宏不区分大小写,可以以任意大小写组合输入。

html 将保存 HTML 文件的流。

ExportAllVisibleSheetsAsOneHtmlFile(TFlexCelWriter, string, string, string, string)htmlFileName本身不会被使用(因为 HTML 文件被保存到流中),但它会告诉生成的额外文件(例如图像)将被存储的路径,以及图像的命名方式。

relativeImagePathrelativeCssFileName 的文件路径不存在,调用时会创建

relativeImagePathrelativeCssFileName 中不能有中文,导出的HTML中对路径中的中文进行了转码,导致加载时找不到文件

例子

导出当前活动的工作表

uses VCL.FlexCel.Core, FlexCel.XlsAdapter, FlexCel.Render;

procedure TForm1.Button20Click(Sender: TObject);
var
  Xls: TXlsFile;
  Html: TFlexCelHtmlExport;
begin
  //读取Excel文件
  Xls := TXlsFile.Create('C:\Users\Administrator\Desktop\ceshi.xlsx');
  //关联导出的文档
  Html := TFlexCelHtmlExport.Create(Xls, True);
  try
    //设置要导出的工作表
    Xls.ActiveSheetByName := 'Sheet2';
    //导出当前活动的工作表到文件
    Html.Export('C:\Users\Administrator\Desktop\新建文件夹\ceshi.html', '');
  finally
    Html.Free;
    Xls.Free;
  end;
end;

导出所有可见工作表

uses VCL.FlexCel.Core, FlexCel.XlsAdapter, FlexCel.Render;

procedure TForm1.Button21Click(Sender: TObject);
var
  Xls: TXlsFile;
  Html: TFlexCelHtmlExport;
begin
  //读取Excel文件
  Xls := TXlsFile.Create('C:\Users\Administrator\Desktop\ceshi2.xlsx');
  //关联导出的文档
  Html := TFlexCelHtmlExport.Create(Xls, True);
  try
    //导出所有可见工作表到文件
    Html.ExportAllVisibleSheetsAsTabs('C:\Users\Administrator\Desktop\新建文件夹\',
      'ceshi_', '.html', 'image1', 'css1.css', nil);
    //导出所有可见工作表到一个文件
    Html.ExportAllVisibleSheetsAsOneHtmlFile('C:\Users\Administrator\Desktop\新建文件夹\ceshi.html',
      'image2', 'css2.css', '<h1>Sheet名【<#SheetName>】</h1><hr />');
  finally
    Html.Free;
    Xls.Free;
  end;
end;

标签:文件,TMS,const,string,FlexCel,delphi,HTML,htmlFileName,css
From: https://www.cnblogs.com/txgh/p/16719642.html

相关文章

  • delphi TcxGrid取消筛选
       19.2 以前的用007大佬的这句 cxgrdbtblvwGrid1DBTableView2.DataController.Filter.Clear;  以后的用DataController.findcriteria.text:=''; ......
  • TMS320C28x数据结构
    来自《TMS320C28xOptimizingC_C++CompilerUser'sGuide》的章节6.4,文档编号:SPRU514R  ......
  • 保险支付查询delphi
    保险支付查询delphiunitUnit_V_Payment;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Unit_Child_T......
  • Delphi WebBrowser控件的使用中出现的bug
     1、WebBrowser.Visible=false;Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowser.Hide的方法代替,WebBrowser.Hide隐藏浏览器, WebBrowser.Show显示浏览器;   ......
  • Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决
    最近用EmbeddedWB控件做浏览器相关应用的时候,发现有些网页只要一打开就一定会蹦出一个“Invalidfloatingpointoperation”异常(关掉异常对话框以后,浏览器无响应),而程序仅......
  • Delphi中TWebBrowser中注入Js
    最近帮朋友做一个软件,其中要自动化某网页中的操作,最简的操作是调用自己写的代码。代码如下:procedureTForm1.Button2Click(Sender:TObject);var i:integer; h:IHTML......
  • Delphi WebBrowser控件
    WebBrowser控件属性:1、Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,程序将返回WebB......
  • delphi中WEBBrowser网页html相互调用(一)
    1、基本操作1.1、激活vardoc,url:Olevariant;beginurl:='about:blank';//或者一个有实际意义的urlWebBrowser1.Navigate2(url);//这样就激活了!end;1.2、写HTM......
  • Delphi 用程序实现自动的html操作
    unitUnit1; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,OleCtrls,SHDocVw,mshtml,StdCtrls,......
  • Delphi WebBrowser完成网页自动登录
    订制一些WEB数据抓取项目时,会遇到需要先登录网站系统,这时候我们通常会做成由系统自动登录的方式。分析网页要完成这项功能,首先需要对项目的网页进行分析,找到关键数据项的......