本章介绍xlsexport()函数的多种用法。
描述:
将序表/游标写入Excel文件
语法:
f.xlsexport(A,x:F,…;s;p)
备注:
将序表或游标A写入Excel文件f,无参数x则写入所有字段。文件f不存在时会自动创建文件f(不能自动创建路径目录)。
若在文件f中不存在sheet s,则会自动在此文件中添加sheet s。
若在文件f中存在sheet s,则会使用s原有的格式。
选项:
@t |
以第一条记录作为标题写入文件,原文件存在时认为最后一个有内容的行是标题。 |
@c |
使用流式写出大文件,原文件要被全读入,不可太大。 |
@a |
原文件存在时,将延用最后一行的格式继续写 |
@w |
当参数A是序列的序列或者A是由/tab分隔的串时,使用该选项,@w与@t@c互斥,且使用@w时无x:F参数。 |
@p |
当参数A为序列的序列时,使用该选项,行列内容转置后写入Excel文件,@p必须与@w同时使用。 |
参数:
f |
文件 |
A |
需要输出的序表/游标 |
x |
需要输出的字段,省略则导出A排列/游标中所有可文本化字段,用#时表示用序号定位。 |
F |
结果字段名,省略则使用原字段名 |
s |
sheet名或序号,省略时在第一个sheet中追加。sheet名称不允许超过31个字符,并且不能包含特殊字符[]:/\?* |
p |
导出Excel文件的打开权限密码 |
示例:
|
A |
|
1 |
=demo.query("select EID,NAME,SURNAME from EMPLOYEE") |
|
2 |
=file("D:\\EMPLOYEE1.xls").xlsexport(A1;"employee";"123") |
导出带有打开权限密码的xls文件,密码为:123 |
3 |
=file("D:\\EMPLOYEE2.xls").xlsexport@t(A1;"employee") |
@t选项,第一行作为标题写入 |
4 |
=file("D:\\ EMPLOYEE4.xls").xlsexport@t(A1,EID,NAME:name;"employee") |
指定导出的字段并且导出到名为“employee”的 sheet中 |
5 |
=file("D:\\EMPLOYEE4.xl").xlsexport@t(A1;"employee") |
判断不出文件扩展名,导出成xls格式的“EMPLOYEE4.xl”文件 |
6 |
=demo.cursor("select EID,NAME,SURNAME from EMPLOYEE") |
|
7 |
=file("D:\\EMPLOYEE5.xls").xlsexport(A6;"employee") |
A6是游标 |
8 |
=file("D:\\EMPLOYEE2.xls").xlsexport@t(A1) |
省略sheet名时在第一页内容下边追加写,并认为最后一个有内容的行是标题,标题覆盖最后一行。 |
9 |
=file("D:\\EMPLOYEE7.xls").xlsexport(A1;#1,#2) |
导出前两列 |
10 |
=demo.query("select * from DEPT where DEPTID <=5") |
|
11 |
=file("D:\\DEPT.xls").xlsexport@a(A1) |
DEPT.xls文件中C列设置了格式,原内容为: 使用@a,追加后内容为: 文件存在,延用最后一行的格式继续写 |
12 |
=file("emp.xls").xlsimport@w() |
A12格结果为序列的序列 |
13 |
=file("expfile1.xls").xlsexport@w(A12) |
将A12格的数据内容写到expfile1.xls中,写出的xls内容如下: |
14 |
=file("emp.xls").xlsimport@s() |
A14格内容如下: |
15 |
=file("expfile2.xls").xlsexport@w(A14) |
将A14格的数据内容写到expfile2.xls中,写出的xls内容如下: |
16 |
=file("exp_p.xls").xlsexport@wp(A12) |
将A12中的数据行列转置后写入Excel中 |
相关概念:
描述:
向Excel对象中写入序列。
语法:
xo.xlsexport(A, x:Fi,..;s)
备注:
向页名或页码为s的Excel sheet中写入序列,若Excel中不存s时则新增sheet s。xo为Excel对象,当xo为@w形式读出的Excel对象时,参数A可以是游标或者序表;当xo为其他形式读出的Excel对象时,A只能是序表。
向Excel sheet中写入序列后,需要通过xo.xlswrite()函数对写入的序列保存,此时查看Excel文件才会显示出刚写入的内容。
参数:
xo |
非@r方式读出的Excel对象 |
A |
游标/序表 |
x |
需要写入的列名,省略时表示写入全部列 |
Fi |
列别名;省略时表示以原名写入 |
s |
页名/页码,sheet名称不允许超过31个字符,并且不能包含特殊字符[]:/\?* |
选项:
@t |
导出标题,当此页上已有内容时,则导出的标题会覆盖本页最后一行内容 |
@a |
s已存在时,延用格式追加写,缺省将覆盖 |
示例:
|
A |
|
1 |
=demo.query("select * from scores") |
返回序表 |
2 |
=file("E11.xlsx") |
|
3 |
=A2.xlsopen() |
读取文件E11.xlsx,返回Excel对象 |
4 |
=A3.xlsexport@t(A1) |
将A1中的序表写入到Excel对象中 |
5 |
=A3.xlsexport@t(A1,CLASS:class,STUDENTID:sid;"Class") |
在Excel对象中新建名称为Class的sheet页,并将A1序表中的CLASS与STUDENTID列分别重命名后写入Class页。 |
6 |
=A3. xlsexport@a(A1,STUDENTID,SUBJECT,SCORE; "STUSCORE") |
Excel对象中存在名称为STUSCORE的sheet页并且存在数据,将A1序表中的STUDENTID、SUBJECT、SCORE列追加写入STUSCORE页 |
7 |
=A2.xlswrite(A3) |
通过xlswrite函数将Excel对象保存到E11.xlsx |