免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python中xlrd和xlwt模塊使用方法

閱讀目錄

  1. 安裝
  2. xlrd模塊使用
  3. xlwt模塊

 


xlrd模塊實(shí)現(xiàn)對(duì)excel文件內(nèi)容讀取,xlwt模塊實(shí)現(xiàn)對(duì)excel文件的寫入。

回到頂部

安裝

?
1
2
pip install xlrd
pip install xlwt

 

回到頂部

xlrd模塊使用

excel文檔名稱為聯(lián)系人.xls,內(nèi)容如下:

 

 

(1) 打開excel文件并獲取所有sheet

?
1
2
3
4
5
6
7
import xlrd
# 打開Excel文件讀取數(shù)據(jù)
data = xlrd.open_workbook('聯(lián)系人.xls')
sheet_name = data.sheet_names()  # 獲取所有sheet名稱
print(sheet_name) # ['銀行2', '銀行3']

(2) 根據(jù)下標(biāo)獲取sheet名稱

?
1
2
3
# 根據(jù)下標(biāo)獲取sheet名稱
sheet2_name = data.sheet_names()[1]
print(sheet2_name)  # '銀行3'

(3) 根據(jù)sheet索引或者名稱獲取sheet內(nèi)容,同時(shí)獲取sheet名稱、行數(shù)、列數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 根據(jù)sheet索引或者名稱獲取sheet內(nèi)容,同時(shí)獲取sheet名稱、列數(shù)、行數(shù)
sheet2 = data.sheet_by_index(1)
print('sheet2名稱:{}\nsheet2列數(shù): {}\nsheet2行數(shù): {}'.format(sheet2.name, sheet2.ncols, sheet2.nrows))
# sheet2名稱:銀行3
# sheet2列數(shù): 7
# sheet2行數(shù): 5
sheet1 = data.sheet_by_name('銀行2')
print('sheet1名稱:{}\nsheet1列數(shù): {}\nsheet1行數(shù): {}'.format(sheet1.name, sheet1.ncols, sheet1.nrows))
# sheet1名稱:銀行2
# sheet1列數(shù): 8
# sheet1行數(shù): 6

 (4) 根據(jù)sheet名稱獲取整行和整列的值

?
1
2
3
4
5
6
#  根據(jù)sheet名稱獲取整行和整列的值
sheet1 = data.sheet_by_name('銀行2')
print(sheet1.row_values(3))  
# ['', '張2', '開發(fā)', 'IT編碼', 999.0, 133111.0, 41463.0, 'zhang2@164.com'] 日期2013/7/7,實(shí)際卻顯示為浮點(diǎn)數(shù)41463.0
print(sheet1.col_values(3)) 
# ['', '工作職責(zé)', '', 'IT編碼', '網(wǎng)絡(luò)維修', '']

 (5)獲取指定單元格的內(nèi)容

?
1
2
3
4
# 獲取指定單元格的內(nèi)容
print(sheet1.cell(1,0).value)  # 第2 行1列內(nèi)容:機(jī)構(gòu)名稱
print(sheet1.cell_value(1,0))  # 第2 行1列內(nèi)容:機(jī)構(gòu)名稱
print(sheet1.row(1)[0].value)  # 第2 行1列內(nèi)容:機(jī)構(gòu)名稱

(6)獲取單元格內(nèi)容的數(shù)據(jù)類型

?
1
2
3
4
5
# 獲取單元格內(nèi)容的數(shù)據(jù)類型
print(sheet1.cell(1,0).ctype)  # 第2 行1列內(nèi)容 :機(jī)構(gòu)名稱為string類型
print(sheet1.cell(3,4).ctype)  # 第4行5列內(nèi)容:999 為number類型
print(sheet1.cell(3,6).ctype)  # 第4 行7列內(nèi)容:2013/7/8 為date類型
# 說明:ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

(7)獲取單元內(nèi)容為日期類型的方式

   使用xlrd的xldate_as_tuple處理為date格式

?
1
2
3
4
5
6
7
8
from datetime import datetime,date
if sheet1.cell(3,6).ctype == 3 :
    print(sheet1.cell(3, 6).value)  # 41463.0
    date_value = xlrd.xldate_as_tuple(sheet1.cell(3, 6).value, data.datemode)
    print(date_value)  # (2013, 7, 8, 0, 0, 0)
    print(date(*date_value[:3])) # 2013-07-08
    print(date(*date_value[:3]).strftime('%Y/%m/%d'))  # 2013/07/08

(8)獲取單元內(nèi)容為number的方式(轉(zhuǎn)為整型)

?
1
2
3
4
if sheet1.cell(3, 5).ctype == 2:
    print(sheet1.cell(3, 5).value)  # 133111.0
    num_value = int(sheet1.cell(3, 5).value)
    print(num_value)  # 133111

(9) 獲取合并單元格的內(nèi)容 

需要merged_cells屬性
?
1
2
3
4
5
6
7
8
9
10
11
# 這里,需要在讀取文件的時(shí)候添加個(gè)參數(shù),將formatting_info參數(shù)設(shè)置為True,默認(rèn)是False,否
# 則可能調(diào)用merged_cells屬性獲取到的是空值。<br>
data = xlrd.open_workbook('聯(lián)系人.xls',formatting_info=True)
sheet1 = data.sheet_by_name('銀行2')
print(sheet1.merged_cells)  # [(0, 1, 0, 8), (2, 6, 0, 1)]<br>
# merged_cells返回的這四個(gè)參數(shù)的含義是:(row,row_range,col,col_range),其中[row,row_range)包括row,
# 不包括row_range,col也是一樣,下標(biāo)從0開始。
#(0, 1, 0, 8) 表示1列-8列合并 (2, 6, 0, 1)表示3行-6行合并<br>
# 分別獲取合并2個(gè)單元格的內(nèi)容:
print(sheet1.cell(0,0).value)  # 銀行2
print(sheet1.cell_value(2, 0))  # 銀行2
規(guī)律 : 獲取merge_cells返回的row和col低位的索引即可!

 使用以下方法更加方便

?
1
2
3
4
5
6
7
8
9
merge_value = []
for (row,row_range,col,col_range) in sheet1.merged_cells:
    merge_value.append((row,col))
print(merge_value)  # [(0, 0), (2, 0)]
for v in merge_value:
    print(sheet1.cell(v[0], v[1]).value)
# 銀行2
# 銀行2

  

回到頂部

xlwt模塊

 

 

?
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
import xlwt
from datetime import datetime,date
def set_style(name, height, bold=False, format_str=''):
    style = xlwt.XFStyle()  # 初始化樣式
    font = xlwt.Font()  # 為樣式創(chuàng)建字體
    font.name = name  # 'Times New Roman'
    font.bold = bold
    font.height = height
    borders= xlwt.Borders() # 為樣式創(chuàng)建邊框
    borders.left= 6
    borders.right= 6
    borders.top= 6
    borders.bottom= 6
    style.font = font
    style.borders = borders
    style.num_format_str= format_str
    return style
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet') # 增加sheet
ws.col(0).width = 200*30 # 設(shè)置第一列列寬
ws.write(0, 0, 1234.56,set_style('Times New Roman',220,bold=True,format_str='#,##0.00'))
ws.write(1, 0, datetime.now(), set_style('Times New Roman',220,bold=False, format_str='DD-MM-YYYY'))
styleOK = xlwt.easyxf('pattern: fore_colour light_blue;'
                          'font: colour green, bold True;')
pattern = xlwt.Pattern()#一個(gè)實(shí)例化的樣式類
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 固定的樣式
pattern.pattern_fore_colour = xlwt.Style.colour_map['red']#背景顏色
styleOK.pattern = pattern
ws.write(2, 0, 1,style=styleOK)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('example.xls')   # 保存xls

 

聯(lián)系人表

 

?
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import xlwt
from datetime import datetime, date
def set_style(name, height, bold=False, format_str='',align='center'):
    style = xlwt.XFStyle()  # 初始化樣式
    font = xlwt.Font()  # 為樣式創(chuàng)建字體
    font.name = name  # 'Times New Roman'
    font.bold = bold
    font.height = height
    borders = xlwt.Borders()  # 為樣式創(chuàng)建邊框
    borders.left = 2
    borders.right = 2
    borders.top = 0
    borders.bottom = 2
    alignment = xlwt.Alignment()  # 設(shè)置排列
    if align== 'center':
        alignment.horz = xlwt.Alignment.HORZ_CENTER
        alignment.vert = xlwt.Alignment.VERT_CENTER
    else:
        alignment.horz = xlwt.Alignment.HORZ_LEFT
        alignment.vert = xlwt.Alignment.VERT_BOTTOM
    style.font = font
    style.borders = borders
    style.num_format_str = format_str
    style.alignment = alignment
    return style
wb = xlwt.Workbook()
ws = wb.add_sheet('聯(lián)系人',cell_overwrite_ok=True# 增加sheet
rows = ['機(jī)構(gòu)名稱', '姓名', '部門', '電話', '入職日期', '手機(jī)', '郵箱']
col1 = ['王1', '王2', '王3']
col2 = ['666', '777','888']
col3 = ['2014-08-09','2014-08-11','2015-08-09']
# 寫第一行數(shù)據(jù)
ws.write_merge(
    0,
    0,
    0,
    6,
    '聯(lián)系人表',
    set_style(
        'Times New Roman',
        320,
        bold=True,
        format_str=''))  # 合并單元格
styleOK = xlwt.easyxf()
pattern = xlwt.Pattern()  # 一個(gè)實(shí)例化的樣式類
pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 固定的樣式
pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow'# 背景顏色
borders = xlwt.Borders()  # 為樣式創(chuàng)建邊框
borders.left = 2
borders.right = 2
borders.top = 6
borders.bottom = 2
font = xlwt.Font()  # 為樣式創(chuàng)建字體
font.name = 'Times New Roman'
font.bold = True
font.height = 220
styleOK.pattern = pattern
styleOK.borders = borders
styleOK.font = font
# 寫第二行數(shù)據(jù)
for index, val in enumerate(rows):
    ws.col(index).width = 150 * 30 # 定義列寬
    ws.write(1, index, val, style=styleOK)
# 寫第3行-6行第一列數(shù)據(jù)
ws.write_merge(
    2,
    2 + len(col1)-1,
    0,
    0,
    'x機(jī)構(gòu)',
    set_style(
        'Times New Roman',
        320,
        bold=True,
        format_str=''))  # 合并單元格
# 從第3行開始寫1列數(shù)據(jù)
for index, val in enumerate(col1):
    ws.col(1).width = 150 * 30 # 定義列寬
    ws.write(index+2, 1, val, style=set_style('Times New Roman',
        200,
        bold=False,
        format_str='',align=''))
# 從第3行開始寫4列數(shù)據(jù)
for index, val in enumerate(col2):
    ws.col(3).width = 150 * 30 # 定義列寬
    ws.write(index+2, 3, val, style=set_style('Times New Roman',
        200,
        bold=False,
        format_str='',align=''))
# 從第3行開始寫5列數(shù)據(jù)
for index, val in enumerate(col3):
    ws.col(4).width = 150 * 30 # 定義列寬
    ws.write(index+2, 4, val, style=set_style('Times New Roman',
        200,
        bold=False,
        format_str='',align=''))
ws.write(4, 2,'技術(shù)部', style=styleOK)
ws.write(4, 5,'186777233', style=styleOK)
ws.write(4, 6,'wang@166.com', style=styleOK)
wb.save('test.xls')   # 保存xls

  

 

 

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python 3 操作 excel
Python 操作 Excel 學(xué)習(xí)筆記
python中使用xlrd、xlwt操作excel表格詳解
Python對(duì)Excel操作詳解
Python操作Excel表格:讀取和寫入
使用python操作Excel——xlrd、xlwt、xlutils庫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服