xlsimport ()

阅读(3285) 标签: xlsimport,

本章介绍xlsimport()函数的多种用法。

f.xlsimport()

描述:

读取Excel文件内容并返回成序表。

语法:

f.xlsimport()

 

f.xlsimport(Fi,…;s,b:e;p)

f读取b行到e行的所有数据,返回成序表。

e<0表示倒数,Fi为读出的字段,缺省读出所有字段。ssheet名或第ssheet

备注:

Excel文件f中读取每行内容,将每行内容作为一个记录返回成序表。

参数:

f

Excel文件。

Fi

读出的字段,缺省读出所有,用#时表示用序号定位。

s

sheet名或序号。如果s省略则找第一个sheet

b

起始行,b省略表示从第一行开始读到e行。此时可以省略。

e

结束行,e省略表示从b行读取到最后一行,此时不可以省略。若e比实际行数大,则以实际最后行数为准。

be都省略时表示从第一行读取到最后一行。

p

Excel文件打开权限密码。

选项:

@t

f中第一行记录作为字段名,不使用本选项就使用_1_2,…作为字段名。有b参数时认为标题在b行。

@c

返回成游标,只支持xlsx格式;此时e不能小于0

@b

读取时去除Excel内容前后的空白行,与@c选项组合使用时无效。

@w

数据返回形式为序列组成的序列,成员为格值;@w@t@c@b选项互斥。

@s

返回成由/tab作为分隔符的串。

@p

必须与@w同时使用,返回由Excel列组成的序列的序列。

@n

读入时去除字符串两端的空白字符,空串则读成null

返回值:

序表

示例:

读取整个xls文件:

 

A

 

1

=file("emp1.xls").xlsimport()

2

=file("password_abc.xls").xlsimport(;;"abc")

读取带密码的xls文件,password_abc.xls的打开权限密码为abc

读取xls文件时将第一行作为标题,并读取指定字段:

 

A

 

1

=file("emp1.xls").xlsimport@t(NAME,GENDER;)

读取字段NAME,GENDER中的数据:

2

=file("emp1.xls").xlsimport@t(#1,#2;)

读取xls中第1个和第2个字段中的数据:

sheet页文件的读取:

 

A

 

1

=file("emp2.xlsx").xlsimport@t(;"t1")

emp2.xlsx中包含两个sheet页,sheet页名称分别为t1,t2

通过sheet页名称读取t1页中的数据

读取多sheet页的xls文件时,当参数s省略时默认读取第1sheet页。

2

=file("emp2.xlsx").xlsimport@t(;2)

通过sheet页序号读取第2个页中的数据。

指定起始行、结束行:

 

A

 

1

=file("emp2.xlsx").xlsimport(;2,3:6)

读取emp2.xlsx2sheet页中的第3行至第6行:

2

=file("emp2.xlsx").xlsimport@t(;2,3:6)

使用@t选项并且有b参数时,将b行数据作为标题:

3

=file("emp2.xlsx").xlsimport@t(;"t2",:6)

省略b,认为第1行为标题行并从第1行读读到第6行,不可省略:

4

=file("emp2.xlsx").xlsimport(;"t2",7:)

省略e,从第7行读到最后一行,可省略:

5

=file("emp2.xlsx").xlsimport(;"t2",3:-4)

从第3行读到倒数第4行:

读取xlsx文件内容,并返回成游标:

 

A

 

1

=file("emp3.xlsx").xlsimport@c()

返回游标。

2

=A1.fetch()

 

读取时去除Excel内容前后的空白行:

 

A

 

1

=file("emp4.xls")

2

=A1.xlsimport@b()

使用@b选项,读取时去除Excel内容前后的空白行。

数据返回形式为序列组成的序列:

 

A

 

1

=file("emp1.xls").xlsimport@w()

使用@w选项,返回序列组成的序列,每一行作为序列的成员:

返回Excel列组成的序列:

 

A

 

1

=file("emp1.xls").xlsimport@pw()

使用@wp选项,返回Excel列组成的序列,每一列作为序列的成员:

返回以/tab作为分隔符的串:

 

A

 

1

=file("emp1.xls").xlsimport@s()

使用@s选项,返回以/tab作为分隔符的串:

 

相关概念:

f.import()

f.xlsexport()

xo.xlsimport()

描述:

Excel对象中取出序表。

语法:

xo.xlsimport(Fi,..;s,b:e)

备注:

Excels或第ssheet页中取出be行的内容,返回序表。所有参数都缺省表示取出第1sheet页的序表。xo为非@w方式读出的Excel对象。

参数:

xo

@w方式读出的Excel对象。

Fi

Excel列名;省略时取出全部列。

s

页名/页码。

b

行数;省略时表示第一行。

e

行数;当e < 0时,表示倒数第e行;缺省时取到最后一行。

选项:

@t

首行是标题,有b参数时认为标题在b行。

@c

返回成游标,此时Excel对象必须是用@r读出的。

@b

读取时去除Excel内容前后的空白行,与@c选项组合使用时无效。

返回值:

序表

示例:

 

A

 

1

=file("E1.xls").xlsopen()

读取E1.xls文件,并返回excel对象:

2

=A1.xlsimport()

无参数时,默认读取第1sheet页的序表:

3

=A1.xlsimport@t(ID,NAME;2)

取出第2页中列名为IDNAME的列,并将第一行作为标题:

4

=A1.xlsimport(;"employee",10:20)

取出名为employeesheet页中的第10行到第20行的内容:

5

D:/excel/emp.xls

emp.xls内容如下:

6

=file(A5).xlsopen().xlsimport@tb()

使用@b选项,去除前后的空白行: