国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3 讀、寫Excel文件的操作方法

2020-01-04 14:18:02
字體:
來源:轉載
供稿:網友

首先,簡單介紹一下EXECL中工作簿和工作表的區別:

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

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

1:使用python實現對Excel文件的讀寫,首先需要安裝專用的模塊(可以自己編寫)xlrd,xlwt模塊

2:讀取excel數據(注意事項:sheet編號,行號,列號都是從索引0開始)

Python,Excel

import xlrd# 設置路徑path = 'E:/input.xlsx'# 打開execlworkbook = xlrd.open_workbook(path)# 輸出Excel文件中所有sheet的名字print(workbook.sheet_names())# 根據sheet索引或者名稱獲取sheet內容Data_sheet = workbook.sheets()[0] # 通過索引獲取# Data_sheet = workbook.sheet_by_index(0) # 通過索引獲取# Data_sheet = workbook.sheet_by_name(u'名稱') # 通過名稱獲取print(Data_sheet.name) # 獲取sheet名稱rowNum = Data_sheet.nrows # sheet行數colNum = Data_sheet.ncols # sheet列數# 獲取所有單元格的內容list = []for i in range(rowNum): rowlist = [] for j in range(colNum): rowlist.append(Data_sheet.cell_value(i, j)) list.append(rowlist)# 輸出所有單元格的內容for i in range(rowNum): for j in range(colNum): print(list[i][j], '/t/t', end="") print()# 獲取整行和整列的值(列表)rows = Data_sheet.row_values(0) # 獲取第一行內容cols = Data_sheet.col_values(1) # 獲取第二列內容# print (rows)# print (cols)# 獲取單元格內容cell_A1 = Data_sheet.cell(0, 0).valuecell_B1 = Data_sheet.row(0)[1].value # 使用行索引cell_C1 = Data_sheet.cell(0, 2).valuecell_D2 = Data_sheet.col(3)[1].value # 使用列索引print(cell_A1, cell_B1, cell_C1, cell_D2)# 獲取單元格內容的數據類型# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 errorprint('cell(0,0)數據類型:', Data_sheet.cell(0, 0).ctype)print('cell(1,0)數據類型:', Data_sheet.cell(1, 0).ctype)print('cell(1,1)數據類型:', Data_sheet.cell(1, 1).ctype)print('cell(1,2)數據類型:', Data_sheet.cell(1, 2).ctype)# 獲取單元格內容為日期的數據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:創建excel并寫入數據

Python,Excel

import xlwtdef set_style(name, height, bold=False): style = xlwt.XFStyle() # 初始化樣式 font = xlwt.Font() # 為樣式創建字體 font.name = name font.bold = bold font.color_index = 4 font.height = height style.font = font return styledef write_excel(path): # 創建工作簿 workbook = xlwt.Workbook(encoding='utf-8') # 創建sheet data_sheet = workbook.add_sheet('demo') row0 = [u'字段名稱', u'大致時段', 'CRNTI', 'CELL-ID'] row1 = [u'測試', '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__': # 設置路徑 path = 'E:/demo.xls' write_excel(path) print(u'創建demo.xls文件成功')

再看一個例子:

轉載:Ryan in C++

基本的write函數接口很簡單:

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

"""設置單元格樣式"""import xlwtdef set_style(font_name, font_height, bold=False): style = xlwt.XFStyle() # 初始化樣式 font = xlwt.Font() # 為樣式創建字體 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# 寫exceldef write_excel(output_path): f = xlwt.Workbook() # 創建工作簿 ''' 創建第一個sheet: sheet1 ''' sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) # 創建sheet row0 = [u'業務',u'狀態',u'北京',u'上海',u'廣州',u'深圳',u'狀態小計',u'合計'] column0 = [u'機票',u'船票',u'火車票',u'汽車票',u'其它'] status = [u'預訂',u'出票',u'退票',u'業務小計'] # 生成第一行 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) # 最后一列"合計" i += 4 j += 1 sheet1.write_merge(21,21,0,1,u'合計',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的話會打不開。

注意:如果對一個單元格重復操作,會引發error。所以在打開時加cell_overwrite_ok=True解決

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

生成的demo.xls效果如下:

Python,Excel

總結

以上所述是小編給大家介紹的Python3 讀、寫Excel文件的操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娄底市| 炎陵县| 辰溪县| 彰武县| 万源市| 威海市| 内黄县| 成安县| 和林格尔县| 安徽省| 逊克县| 乳源| 米泉市| 青铜峡市| 柏乡县| 桑植县| 越西县| 卢湾区| 灵山县| 肃北| 青岛市| 明星| 车险| 周口市| 眉山市| 拉孜县| 山阳县| 财经| 盐山县| 万山特区| 青铜峡市| 韶山市| 泊头市| 莆田市| 道真| 汝城县| 普安县| 南和县| 大兴区| 海晏县| 普安县|