Python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。
#打開Excel文件讀取數(shù)據(jù)
import xlrd
data = xlrd.open_workbook(filename)
#對book和sheet的操作
table = data.sheets()[0]#通過索引順序獲取
table = data.sheet_by_index(sheet_indx))#通過索引順序獲取
table = data.sheet_by_name(sheet_name)#通過名稱獲取
names = data.sheet_names()#返回book中所有工作表的名字
data.sheet_loaded(sheet_name or indx)# 檢查某個sheet是否導(dǎo)入完畢
#讀取前十五行數(shù)據(jù)
for i in range(15):
? ? for j in range(table.ncols):
? ? ? ? data = table.row_values(i)[j] #讀取的單元格的數(shù)據(jù)
>>> rows = sheet2.row_values(3)? ? 行
>>> cols = sheet2.col_values(2)? ? ?列
補充:
xlwt最多只能寫出6w+數(shù)據(jù),如果有更多數(shù)據(jù)要使用另外一個包。
(dataFileName, extension) = os.path.splitext(os.path.basename(self.dataFile))
file = QFileDialog.getSaveFileName(self,"選擇保存文件", dataFileName+".xls","xls(*.xls)")
filename = file[0]
if os.path.exists(filename):
? ? os.remove(filename)
workbook = xlwt.Workbook(encoding='ascii')
worksheet = workbook.add_sheet(" ")
headers = [" "]
for i in range(len(headers)):
? ? worksheet.write(0, i, headers[i])
for row in range(len(self.records)):
? ? for columnin range(len(headers)):
? ? ? ? data =self.convertField(self.records[row], column)
worksheet.write(row+1, column, data)
workbook.save(filename)