最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3 讀、寫(xiě)Excel文件的操作方法

 更新時(shí)間:2018年10月20日 10:53:09   作者:IT成長(zhǎng)筆記  
這篇文章主要介紹了Python3 讀、寫(xiě)Excel文件的操作方法,需要的朋友可以參考下

首先,簡(jiǎn)單介紹一下EXECL中工作簿和工作表的區(qū)別:

工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。

•一個(gè)工作簿就是一個(gè)獨(dú)立的文件
•一個(gè)工作簿里面可以有1個(gè)或者多個(gè)工作表
•工作簿是工作表的集合

1:使用python實(shí)現(xiàn)對(duì)Excel文件的讀寫(xiě),首先需要安裝專(zhuān)用的模塊(可以自己編寫(xiě))xlrd,xlwt模塊

2:讀取excel數(shù)據(jù)(注意事項(xiàng):sheet編號(hào),行號(hào),列號(hào)都是從索引0開(kāi)始)

import xlrd
# 設(shè)置路徑
path = 'E:/input.xlsx'
# 打開(kāi)execl
workbook = xlrd.open_workbook(path)
# 輸出Excel文件中所有sheet的名字
print(workbook.sheet_names())
# 根據(jù)sheet索引或者名稱(chēng)獲取sheet內(nèi)容
Data_sheet = workbook.sheets()[0] # 通過(guò)索引獲取
# Data_sheet = workbook.sheet_by_index(0) # 通過(guò)索引獲取
# Data_sheet = workbook.sheet_by_name(u'名稱(chēng)') # 通過(guò)名稱(chēng)獲取
print(Data_sheet.name) # 獲取sheet名稱(chēng)
rowNum = Data_sheet.nrows # sheet行數(shù)
colNum = Data_sheet.ncols # sheet列數(shù)
# 獲取所有單元格的內(nèi)容
list = []
for i in range(rowNum):
 rowlist = []
 for j in range(colNum):
 rowlist.append(Data_sheet.cell_value(i, j))
 list.append(rowlist)
# 輸出所有單元格的內(nèi)容
for i in range(rowNum):
 for j in range(colNum):
 print(list[i][j], '\t\t', end="")
 print()
# 獲取整行和整列的值(列表)
rows = Data_sheet.row_values(0) # 獲取第一行內(nèi)容
cols = Data_sheet.col_values(1) # 獲取第二列內(nèi)容
# print (rows)
# print (cols)
# 獲取單元格內(nèi)容
cell_A1 = Data_sheet.cell(0, 0).value
cell_B1 = Data_sheet.row(0)[1].value # 使用行索引
cell_C1 = Data_sheet.cell(0, 2).value
cell_D2 = Data_sheet.col(3)[1].value # 使用列索引
print(cell_A1, cell_B1, cell_C1, cell_D2)
# 獲取單元格內(nèi)容的數(shù)據(jù)類(lèi)型
# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print('cell(0,0)數(shù)據(jù)類(lèi)型:', Data_sheet.cell(0, 0).ctype)
print('cell(1,0)數(shù)據(jù)類(lèi)型:', Data_sheet.cell(1, 0).ctype)
print('cell(1,1)數(shù)據(jù)類(lèi)型:', Data_sheet.cell(1, 1).ctype)
print('cell(1,2)數(shù)據(jù)類(lèi)型:', Data_sheet.cell(1, 2).ctype)
# 獲取單元格內(nèi)容為日期的數(shù)據(jù)
date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)
print(type(date_value), date_value)
print('%d:%d:%d' % (date_value[0:3]))

3:創(chuàng)建excel并寫(xiě)入數(shù)據(jù)

import xlwt
def set_style(name, height, bold=False):
 style = xlwt.XFStyle() # 初始化樣式
 font = xlwt.Font() # 為樣式創(chuàng)建字體
 font.name = name
 font.bold = bold
 font.color_index = 4
 font.height = height
 style.font = font
 return style
def write_excel(path):
 # 創(chuàng)建工作簿
 workbook = xlwt.Workbook(encoding='utf-8')
 # 創(chuàng)建sheet
 data_sheet = workbook.add_sheet('demo')
 row0 = [u'字段名稱(chēng)', u'大致時(shí)段', 'CRNTI', 'CELL-ID']
 row1 = [u'測(cè)試', '15:50:33-15:52:14', 22706, 4190202]
 # 生成第一行和第二行
 for i in range(len(row0)):
 data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
 data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))
 # 保存文件
 # workbook.save('demo.xls')
 workbook.save(path)
if __name__ == '__main__':
 # 設(shè)置路徑
 path = 'E:/demo.xls'
 write_excel(path)
 print(u'創(chuàng)建demo.xls文件成功')

再看一個(gè)例子:

轉(zhuǎn)載:Ryan in C++

基本的write函數(shù)接口很簡(jiǎn)單:

•新建一個(gè)excel文件:                                                 file = xlwt.Workbook() (注意這里的Workbook首字母是大寫(xiě))
•新建一個(gè)sheet:                                                        table = file.add_sheet('sheet_name')
•寫(xiě)入數(shù)據(jù)table.write(行,列,value):                            table.write(0,0,'test')
•如果是寫(xiě)入中文,則要用u'漢字'的形式。比如:       table.write(0,0, u'漢字')
•合并單元格:                                                             table.write_merge(x, x + m, y, y + n, string, style)
•x表示行,y表示列,m表示跨行個(gè)數(shù),n表示跨列個(gè)數(shù),string表示要寫(xiě)入的單元格內(nèi)容,style表示單元格樣式

"""
設(shè)置單元格樣式
"""
import xlwt
def set_style(font_name, font_height, bold=False):
 style = xlwt.XFStyle() # 初始化樣式
 font = xlwt.Font() # 為樣式創(chuàng)建字體
 font.name = font_name # 'Times New Roman'
 font.bold = bold
 font.color_index = 4
 font.height = font_height
 borders = xlwt.Borders()
 borders.left = 6
 borders.right = 6
 borders.top = 6
 borders.bottom = 6
 style.font = font
 style.borders = borders
 return style
# 寫(xiě)excel
def write_excel(output_path):
 f = xlwt.Workbook() # 創(chuàng)建工作簿
 '''
 創(chuàng)建第一個(gè)sheet:
 sheet1
 '''
 sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) # 創(chuàng)建sheet
 row0 = [u'業(yè)務(wù)',u'狀態(tài)',u'北京',u'上海',u'廣州',u'深圳',u'狀態(tài)小計(jì)',u'合計(jì)']
 column0 = [u'機(jī)票',u'船票',u'火車(chē)票',u'汽車(chē)票',u'其它']
 status = [u'預(yù)訂',u'出票',u'退票',u'業(yè)務(wù)小計(jì)']
 # 生成第一行
 for i in range(0, len(row0)):
 sheet1.write(0, i, row0[i], set_style('Times New Roman', 220, True))
 # 生成第一列和最后一列(合并4行)
 i, j = 1, 0
 while i < 4*len(column0) and j < len(column0):
 sheet1.write_merge(i, i+3, 0, 0, column0[j], set_style('Arial', 220, True)) # 第一列
 sheet1.write_merge(i, i+3, 7, 7) # 最后一列"合計(jì)"
 i += 4
 j += 1
 sheet1.write_merge(21,21,0,1,u'合計(jì)',set_style('Times New Roman',220,True))
 # 生成第二列
 i = 0
 while i < 4*len(column0):
 for j in range(0,len(status)):
  sheet1.write(j+i+1, 1, status[j])
 i += 4
 f.save(output_path)
if __name__ == '__main__':
 write_excel('E:/demo.xls') # 保存文件.這里如果是.xlsx的話會(huì)打不開(kāi)。

注意:如果對(duì)一個(gè)單元格重復(fù)操作,會(huì)引發(fā)error。所以在打開(kāi)時(shí)加cell_overwrite_ok=True解決

table = file.add_sheet('sheet name',cell_overwrite_ok=True)

生成的demo.xls效果如下:

總結(jié)

以上所述是小編給大家介紹的Python3 讀、寫(xiě)Excel文件的操作方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論

吉水县| 桓台县| 鸡泽县| 怀来县| 夏河县| 宝应县| 郸城县| 兴海县| 松滋市| 格尔木市| 彭泽县| 南城县| 云梦县| 聂荣县| 万山特区| 布尔津县| 宁城县| 忻城县| 繁昌县| 西充县| 泸西县| 双江| 多伦县| 岑巩县| 广水市| 葫芦岛市| 安远县| 彰化县| 安平县| 开远市| 洪湖市| 玉门市| 陆良县| 繁昌县| 梓潼县| 金寨县| 冕宁县| 扎赉特旗| 大化| 平乐县| 绥中县|