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

Python玩轉(zhuǎn)Excel的讀寫改實例

 更新時間:2019年02月22日 16:24:37   作者:lk7688535  
今天小編就為大家分享一篇關(guān)于Python玩轉(zhuǎn)Excel的讀寫改實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

摘要:

  • 利用xlrd讀取excel
  • 利用xlwt寫excel
  • 利用xlutils修改excel

利用xlrd讀取excel

先需要在命令行中pip install xlrd;讀取xls文件的流程為:

加載文件->選中第幾個表格->按先行后列的順序讀

通用demo

import xlrd
filename = "test.xls"        #文件路徑
wb = xlrd.open_workbook(filename)  #加載這個xls文件
sh = wb.sheet_by_index(0)      #選中第1個表格
rows = sh.nrows           #rows為該表格的行數(shù)
for i in range(1,rows):       #從第二行開始按行讀取
  title = sh.cell(i,0).value   #取第i+1行,第1列的數(shù)據(jù)

diy功能

根據(jù)列名獲取內(nèi)容的函數(shù)
def get_col_index(name,workbook,sheet):
  for i in range(sheet.ncols):
    name2 = sheet.cell(0,i).value
    print(name2)
    if name2 == name:
      return i
  return -1
sheet.cell(1,get_col_index("創(chuàng)建時間")).value

再拓展一點:

sh = wb.sheet_by_name(sheetname)  #通過表格名稱選中表格
print(wb.sheet_names())       #打印該xls文件的所有表格名稱
sh.row(i)              #獲得第i+1行的所有數(shù)據(jù)組成的list
ncols = sh.ncols          #獲得該表格的所有列數(shù)
sh.row_values(rowx, start_colx=0, end_colx=None)   #獲取第rowx+1行的某幾列的數(shù)據(jù)并組成的list
sh.col(colx, start_rowx=0, end_rowx=None) #獲取第colx+1列的某幾行的數(shù)據(jù)并組成的list
sh.cell(i,j).value         #獲取第i+1行第j+1列的數(shù)據(jù)
sh.cell(i,j).ctype         #獲取第i+1行第j+1列的數(shù)據(jù)類型

注意date類型

說起數(shù)據(jù)類型,補充一點,xlrd讀取xls文件單元格的數(shù)據(jù)類型有五種,數(shù)字與類型的對應(yīng)關(guān)系為:

ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

當(dāng)單元格某個值為date類型時,不加處理輸出的是一個浮點數(shù),此時需要判斷ctype并進行一次轉(zhuǎn)換:

from xlrd import xldate_as_tuple
cell = sh.cell(i,10).ctype
if cell.ctype == 3:
  date = datetime(*xldate_as_tuple(cell.value, 0))

利用xlwt寫exce

先需要在命令行中pip install xlwt;寫xls文件的流程為:

加載文件->選中第幾個表格->按先行后列的順序讀

通用demo

import xlwt
file = xlwt.Workbook()   #新建個文件
sheet = file.add_sheet('test_sheet0',cell_overwrite_ok=True) #新建個表格,指定表名以及是否可覆蓋寫
sheet.write(i,j,value)   #在第i+1行和第j+1列寫value(i、j從0開始)
file.save("test_xls.xls")  #保存成xls文件并指定文件名

更多功能

#設(shè)置某列的寬度
sheet.col(0).width = 200
#寫日期
style = xlwt.XFStyle()
style.num_format_str = 'D-MMM-YY' 
worksheet.write(0, 0, datetime.datetime.now(), style)
#寫公式
sheet.write(1, 1, xlwt.Formula('SUM(A1,B1)'))
#合并單元格的寫
sheet.write_merge(0, 0, 0, 3, 'First Merge')
#ps:
#write_merge(x, x + h, y, w + y, value, sytle) x和y表示當(dāng)前行列,h和w為要合并的行數(shù)和列數(shù)

更炫酷一點

既然是寫,何不來點style:

style = xlwt.XFStyle()
#修改字體:
font = xlwt.Font()       #為樣式創(chuàng)建字體
font.name = 'Times New Roman'  #字體名稱
font.bold = True        #黑體
font.colour_index = 2      #修改字的顏色
font.underline = True      #下劃線
style.font = font        #使用到樣式中
sheet.write(0,1,"編號",style)
#修改單元格背景色
pattern = xlwt.Pattern() 
pattern.pattern = xlwt.Pattern.SOLID_PATTERN 
pattern.pattern_fore_colour = 5 #色號,可以在源代碼中看到色號和顏色的對應(yīng)關(guān)系
style = xlwt.XFStyle()
style.pattern = pattern
sheet.write(0,2,"編號",style)

利用xlutils修改excel

修改excel文件的流程為:

將xlrd加載的xls文件(xlrd對象)復(fù)制為xlwt對象,然后用xlwt對象操作excel

demo

import xlrd 
import pymysql
from xlrd import open_workbook
from xlutils.copy import copy
import xlwt
file_name = "test_update.xls"
workbook = xlrd.open_workbook(file_name) 
sheet = wb.sheet_by_index(0)
workbook_update = copy(workbook) 
sheet_update = workbook_update.get_sheet(0)
sheet_update.write(i,j,value)
workbook_update.save(file_name)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 使用Python進行二進制文件讀寫的簡單方法(推薦)

    使用Python進行二進制文件讀寫的簡單方法(推薦)

    下面小編就為大家?guī)硪黄褂肞ython進行二進制文件讀寫的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Python教程按照字典的鍵或值進行排序方法解析

    Python教程按照字典的鍵或值進行排序方法解析

    這篇文章主要介紹了Python教程按照字典的鍵或值進行排序方法解析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進步,早日升職加薪
    2021-09-09
  • python模擬點擊在ios中實現(xiàn)的實例講解

    python模擬點擊在ios中實現(xiàn)的實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python模擬點擊在ios中實現(xiàn)的實例講解內(nèi)容,有需要的朋友們可以參考下。
    2020-11-11
  • python DataFrame 取差集實例

    python DataFrame 取差集實例

    今天小編就為大家分享一篇python DataFrame 取差集實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python中多返回值的應(yīng)用場景

    Python中多返回值的應(yīng)用場景

    Python 是一種非常靈活的編程語言,它允許函數(shù)返回多個值,本文主要介紹了Python中多返回值的應(yīng)用場景,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • python妹子圖簡單爬蟲實例

    python妹子圖簡單爬蟲實例

    這篇文章主要介紹了python妹子圖簡單爬蟲,實例分析了Python爬蟲程序所涉及的頁面源碼獲取、進度顯示、正則匹配等技巧,需要的朋友可以參考下
    2015-07-07
  • python flask框架快速入門

    python flask框架快速入門

    Flask 本身相當(dāng)于一個內(nèi)核,其他幾乎所有的功能都要用到擴展,都需要用第三方的擴展來實現(xiàn),本文給大家分享如何快速入門python flask框架,感興趣的朋友一起看看吧
    2021-05-05
  • 對PyQt5中的菜單欄和工具欄實例詳解

    對PyQt5中的菜單欄和工具欄實例詳解

    今天小編就為大家分享一篇對PyQt5中的菜單欄和工具欄實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 解決pycharm運行出錯,代碼正確結(jié)果不顯示的問題

    解決pycharm運行出錯,代碼正確結(jié)果不顯示的問題

    今天小編就為大家分享一篇解決pycharm運行出錯,代碼正確結(jié)果不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法

    python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法

    這篇文章主要介紹了python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法,實例分析了Python調(diào)用winsound模塊的使用技巧,需要的朋友可以參考下
    2015-03-03

最新評論