This commit is contained in:
csh
2024-03-04 16:14:03 +08:00
parent b4ef4a531c
commit a3df0d5df9
8 changed files with 169 additions and 14 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
// Version 1.6.4
// Version 1.6.5
Function TOfficeObj(n);
Begin
case lowercase(n) of
+1 -1
View File
@@ -1,4 +1,4 @@
// Version 1.6.4
// Version 1.6.5
Type TSDocxFile = Class
///Version: V1.0 2022-09-20
///适用于 Microsoft Word docx格式文件
+139
View File
@@ -0,0 +1,139 @@
Type TSPptxFile = Class
///纯TSL模块实现
///PPT文件读写接口
///缺省构造函数
Function Create();overload;
///构造函数,打开已经存在的excel文件
///alias: string,文件目录别名
///fname: string,文件名
Function Create(alias, fname);overload;
///构造函数,打开已经存在的excel文件
///alias: string,文件目录别名
///fname: string,文件名
///passwd: string,密码
Function Create(alias, fname, passwd);overload;
//初始化
Function init();
///打开excel文件
///alias: string,文件目录别名
///fname: string,文件名
///[passwd]: string,密码
///返回: [err, errmsg]
Function OpenFile(alias, fname, passwd);
///新建pptx文件
///返回: [err, info]
Function NewFile();
///保存文件
///返回: [err, info]
Function Save();
///设置密码
Function SetPassword(passwd)
///打开二进制内容
///data: 二进制数据
///返回: [err, errmsg]
Function LoadFromMem(data);
///保存为二进制内容
///返回: [err, fileContent] fileContent二进制文件内容
Function SaveToMem();
///另存为
///alias: string,文件目录别名
///fname: string,文件名
///返回: [err, info]
Function SaveAs(alias, fname);
///真实文件名
///返回: string
Function FileName();
zipfile_;
End;
Function TSPptxFile.Create();overload;
Begin
init();
End;
Function TSPptxFile.Create(alias, fname);overload;
Begin
init();
OpenFile(alias, fname, nil);
End;
Function TSPptxFile.Create(alias, fname, passwd);overload;
Begin
init();
OpenFile(alias, fname, passwd);
End;
Function TSPptxFile.init();
Begin
zipfile_ := new ZipFile();
End;
// TODO
Function TSPptxFile.OpenFile(alias, fname, passwd);
Begin
if not ifObj(zipfile_) then return array(-1, 'Create ZipFile object fail.');
if zipfile_.FilesCount() > 0 then zipfile_ := new ZipFile();
[err, errmsg] := zipfile_.Open(alias, fname, passwd);
if err=0 then Begin
workbook_ := new xlsxWorkBook(zipfile_);
workbook_.Load();
End;
return array(err, errmsg);
End;
//TODO
Function TSPptxFile.NewFile();
Begin
def := TOfficeTemplate('default.pptx', true);
[err, errmsg] := zipfile_.LoadFromMem(def);
if err = 0 then
begin
workbook_ := new xlsxWorkBook(zipfile_);
workbook_.Load();
end
return array(err, errmsg);
End;
Function TSPptxFile.Save();
Begin
return zipfile_.Save();
End;
Function TSPptxFile.SetPassword(passwd)
Begin
zipfile_.Password := passwd;
End;
Function TSPptxFile.LoadFromMem(data);
Begin
[err, errmsg] := zipfile_.LoadFromMem(data);
if err = 0 then
begin
workbook_ := new xlsxWorkBook(zipfile_);
workbook_.Load();
end
return array(err, errmsg);
End;
Function TSPptxFile.SaveToMem();
Begin
return zipfile_.Save2Mem();
End;
Function TSPptxFile.SaveAs(alias, fname);
Begin
return zipfile_.Save(alias, fname);
End;
Function TSPptxFile.FileName();
Begin
return zipfile_.FileName();
End;
Function TSPptxFile.Zip();
Begin
return zipfile_;
End;
+4 -7
View File
@@ -1,4 +1,4 @@
// Version 1.6.4
// Version 1.6.5
Type TSXlsxFile = Class
///Version: V1.0 2022-08-08
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
@@ -560,8 +560,7 @@ Type TSXlsxFile = Class
///返回: styleid
Function NewStyle(style); overload;
Begin
styleObj := new xlsxStyles('', self);
return styleObj.GetStyleId(style);
return style_.GetStyleId(style);
End;
///新建样式对象,已存在样式的基础上返回新的样式Id
@@ -570,16 +569,14 @@ Type TSXlsxFile = Class
///返回: styleid
Function NewStyle(style, oldStyleId); overload;
Begin
styleObj := new xlsxStyles('', self);
return styleObj.GetStyleId(style, oldStyleId);
return style_.GetStyleId(style, oldStyleId);
End;
///获取样式对象
///返回: TStyle对象
Function GetStyle(styleid);
Begin
styleObj := new xlsxStyles('', self);
return styleObj.GetStyle(styleid);
return style_.GetStyle(styleid);
End;
///设置单元格样式