TMS FlexCel 导出HTML
属性和方法
TFlexCelHtmlExport
用于将 Excel 文件导出为 HTML 的组件。
unit
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。例如,如果 htmlFileName 为 c:\reports\html\index.htm
,而 relativeImagePath 为 images
,则图像将保存在文件夹 c:\reports\html\images
中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。
css 使用此参数将所有 CSS 信息存储在外部文件中。如果要将 CSS 存储在 HTML 文件中,请将其设置为 nil。 如果要在多个文件之间共享 CSS,请确保将相同的 css 参数传递给所有Export
调用。
relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileName 为 c:\reports
,而 relativeCssFileName 为 css\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。例如,如果 htmlFileName 为 c:\reports\html\index.htm
,而 relativeImagePath 为 images
,则图像将保存在文件夹 c:\reports\html\images
中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。
relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileName 为 c:\reports
,而 relativeCssFileName 为 css\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。relativeImagePath 和 relativeCssFileName 的文件路径不存在,调用时会创建
relativeImagePath 和 relativeCssFileName 中不能有中文,导出的HTML中对路径中的中文进行了转码,导致加载时找不到文件
htmlFileNamePrefix 和 htmlFileNamePostfix 中不能有中文,导出的图片文件名中包含htmlFileNamePrefix 和 htmlFileNamePostfix中的字符串
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。例如,如果 htmlFileName 为 c:\reports\html\index.htm
,而 relativeImagePath 为 images
,则图像将保存在文件夹 c:\reports\html\images
中。 如果此参数为空,则图像将保存在与HTML文件相同的文件夹中。
relativeCssFileName CSS文件的名称,具有相对于 htmlFileName 的路径。如果将其设置为空,则不会创建 css 文件,并且 css 将存储在每个 HTML 文件中。例如,如果 htmlFileName 为 c:\reports
,而 relativeCssFileName 为 css\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 文件被保存到流中),但它会告诉生成的额外文件(例如图像)将被存储的路径,以及图像的命名方式。relativeImagePath 和 relativeCssFileName 的文件路径不存在,调用时会创建
relativeImagePath 和 relativeCssFileName 中不能有中文,导出的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