基本部分
在写入Excel表格以前,你必须初始化workbook对象,而后添加一个workbook对象。好比:python
1
2
3
|
import
xlwt
wbk
=
xlwt.Workbook()
sheet
=
wbk.add_sheet(
'sheet 1'
)
|
这样表单就被建立了,写入数据也很简单:工具
1
2
|
# indexing is zero based, row then column
sheet.write(
0
,
1
,
'test text'
)
|
以后,就能够保存文件(这里不须要想打开文件同样须要close文件):oop
1
|
wbk.save(
'test.xls'
)
|
深刻探索
worksheet对象,当你更改表单内容的时候,会有警告提示。post
1
2
3
4
5
6
|
sheet.write(
0
,
0
,
'test'
)
sheet.write(
0
,
0
,
'oops'
)
# returns error:
# Exception: Attempt to overwrite cell:
# sheetname=u'sheet 1' rowx=0 colx=0
|
解决方式:使用cell_overwrite_ok=True来建立worksheet:
ui
1
2
3
|
sheet2
=
wbk.add_sheet(
'sheet 2'
, cell_overwrite_ok
=
True
)
sheet2.write(
0
,
0
,
'some text'
)
sheet2.write(
0
,
0
,
'this should overwrite'
)
|
这样你就能够更改表单2的内容了。this
更多
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# Initialize a style
style
=
xlwt.XFStyle()
# Create a font to use with the style
font
=
xlwt.Font()
font.name
=
'Times New Roman'
font.bold
=
True
# Set the style's font to this new one you set up
style.font
=
font
# Use the style when writing
sheet.write(
0
,
0
,
'some bold Times text'
, style)
|
xlwt 容许你每一个格子或者整行地设置格式。还能够容许你添加连接以及公式。其实你能够阅读源代码,那里有不少例子:spa
dates.py
, 展现如何设置不一样的数据格式hyperlinks.py
, 展现如何建立超连接 (hint: you need to use a formula)merged.py
, 展现如何合并格子row_styles.py
, 展现如何应用Style到整行格子中.
例子
这里演示的数据并非很容直接导入Excel:excel
20 Sep, 263, 1148, 0, 1, 0, 0, 1, 12.1, 13.9, 1+1, 19.9
20 Sep, 263, 1118, 0, 1, 0, 360, 0, 14.1, 15.3, 1+1, 19.9
20 Sep, 263, 1048, 0, 1, 0, 0, 0, 14.2, 15.1, 1+1, 19.9
20 Sep, 263, 1018, 0, 1, 0, 360, 0, 14.2, 15.9, 1+1, 19.9
20 Sep, 263, 0948, 0, 1, 0, 0, 0, 14.4, 15.3, 1+1, 19.9code
第一个逗号以前数据表示日期,第二列表示今年的第几天(可忽略),咱们感兴趣的是第九列的温度数据。咱们的目的是把感兴趣的数字写入Excel: 第一列为时间,第二列为温度。首先你要把上面的数据保存在一个weather.data.exampl
e文件中。orm
而后运行下面的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
'''
Script to convert awkwardly-formatted weather data
into an Excel spreadsheet using Python and xlwt.
'''
from
datetime
import
datetime
import
xlwt
# Create workbook and worksheet
wbk
=
xlwt.Workbook()
sheet
=
wbk.add_sheet(
'temperatures'
)
# Set up a date format style to use in the
# spreadsheet
excel_date_fmt
=
'M/D/YY h:mm'
style
=
xlwt.XFStyle()
style.num_format_str
=
excel_date_fmt
# Weather data has no year, so assume it's the current year.
year
=
datetime.now().year
# Convert year to a string because we'll be
# building a date string below
year
=
str
(year)
# The format of the date string we'll be building
python_str_date_fmt
=
'%d %b-%H%M-%Y'
row
=
0
# row counter
f
=
open
(
'c:/baidu/weather.data.example'
)
for
line
in
f:
# separate fields by commas
L
=
line.rstrip().split(
','
)
# skip this line if all fields not present
if
len
(L) <
12
:
continue
# Fields have leading spaces, so strip 'em
date
=
L[
0
].strip()
time
=
L[
2
].strip()
# Datatypes matter. If we kept this as a string
# in Python, it would be a string in the Excel sheet.
temperature
=
float
(L[
8
])
# Construct a date string based on the string
# date format we specified above
date_string
=
date
+
'-'
+
time
+
'-'
+
year
# Use the newly constructed string to create a
# datetime object
date_object
=
datetime.strptime(date_string,
python_str_date_fmt)
# Write the data, using the style defined above.
sheet.write(row,
0
,date_object, style)
sheet.write(row,
1
,temperature)
row
+
=
1
wbk.save(
'c:/baidu/reformatted.data.xls'
)
|
首先,打开workbook;
1
2
|
import
xlrd
wb
=
xlrd.open_workbook(
'myworkbook.xls'
)
|
检查表单名字:
1
|
wb.sheet_names()
|
获得第一张表单,两种方式:索引和名字
1
2
|
sh
=
wb.sheet_by_index(
0
)
sh
=
wb.sheet_by_name(u
'Sheet1'
)
|
递归打印出每行的信息:
1
2
|
for
rownum
in
range
(sh.nrows):
print
sh.row_values(rownum)
|
若是只想返回第一列数据:
1
|
first_column
=
sh.col_values(
0
)
|
经过索引读取数据:
1
2
|
cell_A1
=
sh.cell(
0
,
0
).value
cell_C4
=
sh.cell(rowx
=
3
,colx
=
2
).value
|
注意:这里的索引都是从0开始的。
这里给个完整的例子:
1
2
3
4
5
6
7
8
|
import
xlrd
wb
=
xlrd.open_workbook(
'c:/baidu/hello.xls'
)
sh
=
wb.sheet_by_index(
0
)
for
rownum
in
range
(sh.nrows):
print
sh.row_values(rownum)
print
sh.cell(
3
,
4
).value
|
执行结果:
C:\Development\python26>python c:/baidu/xlrsExcel.py [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] [2.0, 3.0, 4.0, 5.0, 6.0, 7.0] [3.0, 4.0, 5.0, 6.0, 7.0, 8.0] [4.0, 5.0, 6.0, 7.0, 8.0, 9.0] [5.0, 6.0, 7.0, 8.0, 9.0, 10.0] [6.0, 7.0, 8.0, 9.0, 10.0, 11.0] [7.0, 8.0, 9.0, 10.0, 11.0, 12.0] [8.0, 9.0, 10.0, 11.0, 12.0, 13.0] [9.0, 10.0, 11.0, 12.0, 13.0, 14.0] [10.0, 11.0, 12.0, 13.0, 14.0, 15.0] 8.0