v1.6.5
This commit is contained in:
parent
b4ef4a531c
commit
a3df0d5df9
|
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "funcext/TSOffice/Extensions/OfficeVba"]
|
||||||
|
path = funcext/TSOffice/Extensions/OfficeVba
|
||||||
|
url = https://git.mytsl.cn/tinysoft/OfficeVba.git
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# OfficePlugin
|
# TSOffice
|
||||||
|
|
||||||
TSOffice 项目:纯 TSL 代码实现 excel、word 文件读写
|
TSOffice 项目:纯 TSL 代码实现 excel、word 文件读写
|
||||||
|
|
||||||
|
|
@ -28,6 +28,13 @@ TSOffice 项目:纯 TSL 代码实现 excel、word 文件读写
|
||||||
|
|
||||||
- [Word 帮助文档](./DocxFile使用帮助.docx)
|
- [Word 帮助文档](./DocxFile使用帮助.docx)
|
||||||
|
|
||||||
|
## 扩展
|
||||||
|
|
||||||
|
扩展模块的内容需要通过`git submodule update --init --recursive`获取,相关帮助文档在`./funcext/TSOffice/Extensions/模块名`目录下可获取
|
||||||
|
|
||||||
|
支持的扩展:
|
||||||
|
|
||||||
|
- **OfficeVba**: 可通过类 Vba 方式对 office文件 进行读写操作。
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit a68cfb01d7f8f722987e7c74a78edc7371c810e5
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.4
|
// Version 1.6.5
|
||||||
Function TOfficeObj(n);
|
Function TOfficeObj(n);
|
||||||
Begin
|
Begin
|
||||||
case lowercase(n) of
|
case lowercase(n) of
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.4
|
// Version 1.6.5
|
||||||
Type TSDocxFile = Class
|
Type TSDocxFile = Class
|
||||||
///Version: V1.0 2022-09-20
|
///Version: V1.0 2022-09-20
|
||||||
///适用于 Microsoft Word docx格式文件
|
///适用于 Microsoft Word docx格式文件
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Version 1.6.4
|
// Version 1.6.5
|
||||||
Type TSXlsxFile = Class
|
Type TSXlsxFile = Class
|
||||||
///Version: V1.0 2022-08-08
|
///Version: V1.0 2022-08-08
|
||||||
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
|
///适用于 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式。
|
||||||
|
|
@ -560,8 +560,7 @@ Type TSXlsxFile = Class
|
||||||
///返回: styleid
|
///返回: styleid
|
||||||
Function NewStyle(style); overload;
|
Function NewStyle(style); overload;
|
||||||
Begin
|
Begin
|
||||||
styleObj := new xlsxStyles('', self);
|
return style_.GetStyleId(style);
|
||||||
return styleObj.GetStyleId(style);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///新建样式对象,已存在样式的基础上返回新的样式Id
|
///新建样式对象,已存在样式的基础上返回新的样式Id
|
||||||
|
|
@ -570,16 +569,14 @@ Type TSXlsxFile = Class
|
||||||
///返回: styleid
|
///返回: styleid
|
||||||
Function NewStyle(style, oldStyleId); overload;
|
Function NewStyle(style, oldStyleId); overload;
|
||||||
Begin
|
Begin
|
||||||
styleObj := new xlsxStyles('', self);
|
return style_.GetStyleId(style, oldStyleId);
|
||||||
return styleObj.GetStyleId(style, oldStyleId);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///获取样式对象
|
///获取样式对象
|
||||||
///返回: TStyle对象
|
///返回: TStyle对象
|
||||||
Function GetStyle(styleid);
|
Function GetStyle(styleid);
|
||||||
Begin
|
Begin
|
||||||
styleObj := new xlsxStyles('', self);
|
return style_.GetStyle(styleid);
|
||||||
return styleObj.GetStyle(styleid);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
///设置单元格样式
|
///设置单元格样式
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue