1. 程式人生 > >Python讀寫excel表格的方法

Python讀寫excel表格的方法

python excel 表格 xls

目的:實現用python做excel的讀取、新增、修改操作。


環境:ubuntu 16.04 Python 3.5.2


用python讀寫文檔,一般是操作txt文件或者可以用記事本打開的文件,因為這個操作很直接,不需要導入其他模塊,但如果想要對excel表格進行操作,就需要導入其他模塊,包括:xlrd(讀取),xlwt(寫入),xlutils(復制),一般是這三個模塊,且需要另外下載,http://pypi.python.org/pypi/模塊名。


表格的讀取:

讀取只需要導入xlrd模塊:

import xlrd

filename = ‘test.xls‘

# 以xlrd打開表格給book
book = xlrd.open_workbook(filename)
# 獲取工作表的方法之一,用下標。
sheel_1 = book.sheet_by_index(0)
# 打印第一個工作表的名的方法之一。
print("Worksheet name(s): ",book.sheet_names()[0])
# 打印表格文件中工作表的數量
print(‘book.nsheets‘,book.nsheets)
# 打印工作表名方法之二和打印這個表的總行數和總列數。
print(‘sheel_1.name:‘,sheel_1.name,‘sheel_1.nrows:‘,sheel_1.nrows,‘sheel_1.ncols:‘,sheel_1.ncols)
# 打印第一個工作表中行0列1的值,用下標。
print(‘A1:‘,sheel_1.cell_value(rowx=0,colx=1))
# 打印單元格的另一種方法
print(‘A2:‘,sheel_1.cell_value(0,2))


表格的新增:

新增只需要導入xlwt模塊:

import xlwt

filename = ‘test.xls‘

book = xlwt.Workbook()
sheet_1 = book.add_sheet(‘hello‘)
sheel_2 = book.add_sheet(‘word‘)
sheet_1.write(0,0,‘hello‘)
sheet_1.write(0,1,‘world‘)
row1 = sheet1.row(1)
row1.write(0,‘A2‘)
row1.write(1,‘B2‘)
 
sheet_1.col(0).width = 10000
 
sheet_2 = book.get_sheet(1)
sheet_2.row(0).write(0,‘Sheet 2 A1‘)
sheet_2.row(0).write(1,‘Sheet 2 B1‘)
sheet_2.flush_row_data()
 
sheet_2.write(1,0,‘Sheet 2 A3‘)
sheet_2.col(0).width = 5000
sheet_2.col(0).hidden = True
 
book.save(filename)


修改已經存在的表格

一般修改表格步驟:導入模塊--xlrd讀取表格--xlutils復制讀取的表格--xlwt對表格修改--xlwt保存表格--刪除舊表格。


解析:對excel同時讀寫是不行的,細心會發現office操作表格時也是這個步驟,先是讀取,如果修改了數據,會先復制一份,產生一個帶$的臨時隱藏文件,修改是在臨時文件上操作,當用戶保存時會刪除舊的文件,把臨時文件命名為舊文件名,感覺就像直接讀寫了表格,所以你沒有正常關閉的表格會有一個臨時文件,你沒保存的東西全部在裏面,也可能是部分。


下面演示一下實際python應用步驟:

import xlrd
import xlwt
import copy

# 文件名變量
filename = ‘test.xls‘

# 讀取文件
book_r = xlrd.open_workbook(filename)

# 復制原表格
book_w = xlutils.copy(book_r)

# 以編輯方式得到文件的第一個工作表
sheet_1 = book_w.get_sheet(0)

# 定義要輸入的內容
text = ‘This is a test of Ricky.‘

# 定義寫入表格的單元格行號,使用下標1
row = 1

# 定義寫入表格的單元格列號,使用下標2
col = 2

# 把內容寫入表格
sheet_1.write(row, col, text)

# 刪除原文件
os.remove(filename)

# 保存修改的文件為原文件
book_w.save(filename)

說明:

1)上面那麽多定義是為了說明參數的位置和意義,可以直接把值寫入參數位置,但參數使用變量可以方便復用,比如在循環中;

2)如果想要保留源文件的格式,打開部分的需要寫成:

book_r = xlrd.open_workbook(filename, formatting_info=True)



本文出自 “RickyHuL” 博客,請務必保留此出處http://rickyh.blog.51cto.com/10934856/1943649

Python讀寫excel表格的方法