91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 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

黄浦区| 法库县| 永德县| 清河县| 军事| 育儿| 闽清县| 融水| 乡城县| 皋兰县| 额济纳旗| 谢通门县| 泌阳县| 屯门区| 盐城市| 岚皋县| 宁晋县| 龙海市| 定安县| 鸡泽县| 太仓市| 黄山市| 北票市| 驻马店市| 张家界市| 若尔盖县| 西畴县| 铜梁县| 汕头市| 兰考县| 夹江县| 永丰县| 南京市| 新蔡县| 建昌县| 德昌县| 蒙山县| 洞口县| 神池县| 文登市| 彰武县|