中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Python3讀寫Excel文件(使用xlrd,xlsxwriter,openpyxl3種方式讀寫實例與優劣)

Python3讀寫Excel文件(使用xlrd,xlsxwriter,openpyxl3種方式讀寫實例與優劣)

發布時間:2020-08-31 22:06:51 來源:腳本之家 閱讀:161 作者:沙振宇 欄目:開發技術

Python中幾種常用包比較

Python3讀寫Excel文件(使用xlrd,xlsxwriter,openpyxl3種方式讀寫實例與優劣)

2、用xlrd包讀取Excel文件

引用包

import xlrd

打開文件

xlrd.open_workbook(r'/root/excel/chat.xls')

獲取你要打開的sheet文件

# 獲取所有sheet
sheet_name = workbook.sheet_names()[0]
# 根據sheet索引或者名稱獲取sheet內容
sheet = workbook.sheet_by_index(0) # sheet索引從0開始

獲取指定單元格里面的值

sheet.cell_value(第幾行,第幾列)

獲取某行或者某列的值

# 獲取整行和整列的值(數組)
rows = sheet.row_values(1) # 獲取第2行內容
cols = sheet.col_values(2) # 獲取第3列內容

獲取sheet的名稱,行數,列數

# sheet的名稱,行數,列數
print (sheet.name,sheet.nrows,sheet.ncols)

源碼示例

import xlrd
from datetime import date,datetime
arrayNum = 6
#array = {'L1':'','L2':'','L3':'','L4':'','Question':'','Answer':''}
tables = []
newTables = []
def read_excel():
 # 打開文件
 workbook = xlrd.open_workbook(r'/root/chat.xls')
 # 獲取所有sheet
 sheet_name = workbook.sheet_names()[0]
 # 根據sheet索引或者名稱獲取sheet內容
 sheet = workbook.sheet_by_index(0) # sheet索引從0開始
 # sheet = workbook.sheet_by_name('Sheet1')
 #print (workboot.sheets()[0])
 # sheet的名稱,行數,列數
 print (sheet.name,sheet.nrows,sheet.ncols)
 # 獲取整行和整列的值(數組)
 rows = sheet.row_values(1) # 獲取第2行內容
 # cols = sheet.col_values(2) # 獲取第3列內容
 print (rows)
 # print (cols)
 for rown in range(sheet.nrows):
  array = {'L1':'','L2':'','L3':'','L4':'','Question':'','Answer':''}
  array['L1'] = sheet.cell_value(rown,0)
  array['L2'] = sheet.cell_value(rown,1)
  array['L3'] = sheet.cell_value(rown,2)
  array['L4'] = sheet.cell_value(rown,3)
  array['Question'] = sheet.cell_value(rown,4)
  array['Answer'] = sheet.cell_value(rown,5)
  tables.append(array)
 print (len(tables))
 #print (tables)
 #print (tables[5])
if __name__ == '__main__':
 # 讀取Excel
 read_excel();
 print ('讀取成功')

3、盡量不用xlwt包寫入Excel文件

原因

在xlwt中生成的xls文件最多能支持65536行數據。如果寫入過多,會報錯

由于數據太多,會報這個錯誤:

ValueError: row index (65536)not an intin range(65536)錯誤

源碼示例

# 1. 導入模塊
import xlwt
def write_excel():
# 2. 創建Excel工作薄
myWorkbook = xlwt.Workbook()
# 3. 添加Excel工作表
mySheet = myWorkbook.add_sheet('A Test Sheet')
# 4. 寫入數據
myStyle = xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00') #數據格式
mySheet.write(i, j, 1234.56, myStyle)
mySheet.write(2, 0, 1)       #寫入A3,數值等于1
mySheet.write(2, 1, 1)       #寫入B3,數值等于1
mySheet.write(2, 2, xlwt.Formula("A3+B3"))  #寫入C3,數值等于2(A3+B3)
#5. 保存
myWorkbook.save('excelFile.xls')
if __name__ == '__main__':
 # 寫入Excel
 write_excel();
 print ('寫入成功') 

4、用openpyxl包寫入Excel文件

引用包

import openpyxl

創建工作簿

f = openpyxl.Workbook() #創建工作簿

創建sheet

sheet1 = f.create_sheet()

設置每個單元格里面的值

 for jkey in range(len(newTables)):
 jk = 1
 for cT in range(arrayNum):
  jk = jkey + 1
  if cT == 0:
  sheet1.cell(row=jk,column=cT+1).value='1'
  else:
  sheet1.cell(row=jk,column=cT+1).value='2'

保存文件

f.save("chatPy.xlsx") #保存文件

源碼示例

import openpyxl
#寫excel
def write_excel():
 f = openpyxl.Workbook() #創建工作簿
 sheet1 = f.create_sheet()
 #sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #創建sheet
 row0 = [u'L1',u'L2',u'L3',u'L4',u'問題',u'答案']
 #生成第一行
 #for i in range(len(row0)):
 # sheet1.cell(column=i,row=0).value='L1')
 #生成后續
 for jkey in range(len(newTables)): 
  jk = 1
  for cT in range(arrayNum):
   jk = jkey + 1
   if cT == 0:
   sheet1.cell(row=jk,column=cT+1).value='1'
   else:
   sheet1.cell(row=jk,column=cT+1).value='2'
   
 f.save("chatPy.xlsx") #保存文件
if __name__ == '__main__':
 # 寫入Excel
 write_excel();
 print ('寫入成功')

5、用xlsxwriter包寫入Excel文件

簡介

由于xlwt最大只支持65536行數據于是我找到了xlsxwriter這個模塊,它生成的文件后綴名為.xlsx,最大能夠支持1048576行數據,16384列數據

引用包

import xlsxwriter

創建工作簿

workbook = xlsxwriter.Workbook('demo1.xlsx')#創建一個excel文件

創建sheet

worksheet = workbook.add_worksheet(u'sheet1')#在文件中創建一個名為TEST的sheet,不加名字默認為sheet1

設置每個單元格里面的值

worksheet.write(3,0,35.5)#第4行的第1列設置值為35.5

關閉工作簿

workbook.close()

源碼示例

import xlsxwriter
#寫excel
def write_excel(): 
 workbook = xlsxwriter.Workbook('chat.xlsx')#創建一個excel文件
 worksheet = workbook.add_worksheet(u'sheet1')#在文件中創建一個名為TEST的sheet,不加名字默認為sheet1
 
 worksheet.set_column('A:A',20)#設置第一列寬度為20像素
 bold= workbook.add_format({'bold':True})#設置一個加粗的格式對象
 
 worksheet.write('A1','HELLO')#在A1單元格寫上HELLO
 worksheet.write('A2','WORLD',bold)#在A2上寫上WORLD,并且設置為加粗
 worksheet.write('B2',U'中文測試',bold)#在B2上寫上中文加粗
 
 worksheet.write(2,0,32)#使用行列的方式寫上數字32,35,5
 worksheet.write(3,0,35.5)#使用行列的時候第一行起始為0,所以2,0代表著第三行的第一列,等價于A4
 worksheet.write(4,0,'=SUM(A3:A4)')#寫上excel公式
 workbook.close()
if __name__ == '__main__':
 # 寫入Excel
 write_excel();
 print ('寫入成功')

更多關于Python3讀寫Excel文件方法請查看下面的相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文昌市| 姜堰市| 江津市| 汉源县| 伽师县| 龙里县| 册亨县| 龙陵县| 泗水县| 疏附县| 彰化县| 青神县| 南和县| 孟津县| 留坝县| 天津市| 宜都市| 浏阳市| 麟游县| 佛坪县| 景谷| 南开区| 遂川县| 开平市| 佛山市| 和平县| 即墨市| 西华县| 宝山区| 沂水县| 额济纳旗| 南丰县| 万荣县| 平安县| 兴仁县| 呼玛县| 莱阳市| 历史| 洛川县| 惠安县| 白水县|