欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python這樣操作能存儲(chǔ)100多萬(wàn)行的xlsx文件

 更新時(shí)間:2019年04月16日 09:34:21   作者:Python小老弟  
這篇文章主要介紹了Python這樣操作能存儲(chǔ)100多萬(wàn)行的xlsx文件的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

(1) 如果excel文件是xls,2003版的,使用xlrd和xlwt庫(kù)來(lái)對(duì)xls文件進(jìn)行操作

(2) 如果excel文件是xlsx,2007以上版的,使用openpyxl庫(kù)來(lái)對(duì)xlsx文件進(jìn)行操作

Tips:xlrd、xlwt和openpyxl非python自帶庫(kù)。

我們使用Python做數(shù)據(jù)挖掘和分析時(shí)候,當(dāng)數(shù)據(jù)行超過(guò)一定數(shù)量,xls文件是存不下的。顯然無(wú)法滿足我們的大量數(shù)據(jù)存儲(chǔ)需求,這個(gè)時(shí)候需要改用xlsx。

那具體xls和xlsx最大分別可以存多少行呢?

(1) 對(duì)于2003版本的xls文件,最大行數(shù)是65536行

(2) 對(duì)于2007版本的xlsx文件,最大行數(shù)是1048576行

閑話不多聊,直接上代碼干貨

!/usr/bin/env python3
- - coding: utf-8 - -

讀寫2007 excel

import pprint
import openpyxl
import openpyxl.styles
from openpyxl.styles import Font,colors

讀取Excel文件

def readExcel(filename):
workbook = openpyxl.load_workbook(filename)
worksheet = workbook['用戶']
list = []
for row in worksheet.rows: # 1行1行讀
lineData = [] # 行數(shù)據(jù)
col = 1
for cell in row:
lineData.append(cell.value) # 1列1列讀
col = col + 1
list.append(lineData)
return list

操作數(shù)據(jù)

def operateData(filename):
list = readExcel(filename)

去除第一行,第一行是表頭

list.pop(0)
pprint.pprint(list)
pprint.pprint("先按性別排序,再按身高排序")

要對(duì)身高進(jìn)行排序,但是男女有別

先按性別排序,再按身高排序

list.sort(key=lambda ele: (ele[3], ele[4]))
pprint.pprint(list)

獲取Excel標(biāo)簽列表

比如第5行標(biāo)簽列表,總共4列 ['A5', 'B5', 'C5', 'D5']

def getTagList(index, colNum):
tagList = []
for i in range(0, colNum):

A的ascii碼值65

tag = chr(65 + i) + str(index)
tagList.append(tag)
return tagList

寫入Excel文件

def writeExcel(outputFilePath, list):
book = openpyxl.Workbook()
sheet = book.create_sheet("用戶", 0)
sheet.title = "用戶" # sheet名稱
rowNum = len(list)
try:

1行1行讀取

for i in range(1, rowNum + 1): # 下標(biāo)從1開始
datalist = list[i -1] # 讀取1行
col = 1

1列1列寫入

for data in datalist:
sheet.cell(i, col, data) #寫入內(nèi)容
col += 1

獲取標(biāo)簽列表

tagList = getTagList(i, len(datalist))
font = Font('微軟雅黑', size = 14, color = '333333')

設(shè)置單元格字體、字號(hào)、顏色

for tag in tagList:
sheet[tag].font = font # 設(shè)置字體

保存文件

book.save(outputFilePath)
except Exception as e: # 捕獲異常
print(e)

主函數(shù)

if name == " main ":
print("讀取xlsx格式的數(shù)據(jù)")
userList = readExcel('user.xlsx')
print("寫入xlsx文件")
writeExcel("user2.xlsx", userList)
print("操作數(shù)據(jù)")
operateData('user.xlsx')

總結(jié)

以上所述是小編給大家介紹的Python這樣操作能存儲(chǔ)100多萬(wàn)行的xlsx文件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

最新評(píng)論