九、Python 操作excel(一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

pip install xlrd(读)

1.导入:import xlrd

2.打开文件:book = xlrd.open_workbook(文件位置+文件名)

3.根据sheet名称获取工作薄:sheet = book.sheet_by_name('Sheet5')

4.获取行数:rows = sheet.nrows

5.获取列数:cols = sheet.ncols

6. 按行获取值:for r in range(rows):

row_vaule = sheet.row_values(r)

7.按列获取值: for c in range(cols):

col_vuale = sheet.col_values(c)

8.按行列获取值:sheet.cell(行,列) 注:行列第一行下标从0开始

pip install xlwt(写,不支持xlsx格式)

1.导入:import xlwt

2.初始化并创建一个工作簿:book = xlwt.Workbook()

3.sheet = book.add_sheet('Sheet5',cell_overwrite_ok = True) #同一个单元格重复写入数据设

置,book.add_sheet('Sheet5',cell_overwrite_ok = True)

4.按行列写入:sheet.write(行,列,'内容')

5.合并信息并写入样式:sheet.write_merge(开始行,结束行,开始列,结束列,'内

容',self.styleExcle(2,3)) #self.styleExcle(2,3)自定义函数,2,3为参数,详见下面的实例

6.保存:book.save(文件位置+文件名)

pip install xlutils(结合读写可修改excel)

1.导入:from xlutils.copy import copy import os

2.打开文件:book = xlrd.open_workbook(filename)

3.复制excel:newbook = copy(book)

4.打开第一个工作薄:sheet = newbook.get_sheet(0)

5.修改第2行,第一列的值:sheet.write(1,0,'xiugren')

6.保存文件:newbook.save(copefilename)

7.删除旧文件:os.remove(filename)

8.重命名新文件名为旧文件名:os.rename(copefilename,filename)

文件路径

实例

#!/usr/bin/python

# ‐*‐ coding: UTF‐8 ‐*‐

import xlrd

import xlwt

from xlutils.copy import copy

import os

'''

xlwt:只支持xls不支持xlsx

如果写入数据时,打开了exl会报PermissionError: [Errno 13] Permission denied: 异常 '''

class excel():

#编辑Excel样式,字体加粗加红

def styleExcle(self,fontclour,patternclour):

#初始化样式

style = xlwt.XFStyle()

#为样式创建字体

font = xlwt.Font()

font.colour_index = fontclour #2为红色 3为绿色

#font.bold = True #粗体

#font.height = 400# 字体大小

#font.italic = True # 斜体

#font.struck_out =True # 横线(比如:在一个字中 画上一横)

style.font= font

#设置背景颜色

pattern = xlwt.Pattern()

#设置背景颜色的模式

pattern.pattern = xlwt.Pattern.SOLID_PATTERN

#背景颜色

pattern.pattern_fore_colour= patternclour#2为红色 3为绿色

style.pattern = pattern

return style

#xlwt(写)

def wirteExcle(self,filename,data):

#初始化并创建一个工作簿

book = xlwt.Workbook()

#创建一个名为sheetname的表单

sheet = book.add_sheet('Sheet5',cell_overwrite_ok = True)

#同一个单元格重复写入数据设置,book.add_sheet('Sheet5',cell_overwrite_ok = True)

#同一个单元格重复写入数据设置,book.add_sheet('Sheet5',cell_overwrite_ok = True) #默认 cell_overwrite_ok = False 表示禁止重复写入,重写抛出异常raise

Exception(msg)Exception: Attempt to overwrite cell:

c=1

for students in data:

#标题

sheet.write(0,0,'姓名')

sheet.write(0,1,'年龄')

#内容(行,列,值)第一行=0,第一列=0

sheet.write(c,0,students['name'])

sheet.write(c,1,students['age'])

c+=1

#(开始行,结束行,开始列,结束列,合并信息)

sheet.write_merge(c,c,0,1,'学生信息',self.styleExcle(2,3))

#将工作簿以filename命名并保存

book.save(filename)

#xlutils(结合读写可修改excel)

def updateExcle(self,filename,copefilename):

book = xlrd.open_workbook(filename)#打开文件

newbook = copy(book)#复制excel

sheet = newbook.get_sheet(0)#打开第一个工作薄

sheet.write(1,0,'xiugren')#修改第2行,第一列的值

newbook.save(copefilename)#保存文件

os.remove(filename)#删除文件

os.rename(copefilename,filename)#重命名

#xlrd(读)

def readExcle(self,filename):

print('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐开始‐读‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐') book = xlrd.open_workbook(filename)#打开文件

sheetname =book.sheet_names()#查看文件中包含sheet的名称

sheet = book.sheet_by_name('Sheet5')#根据sheet名称获取工作薄

#sheet = file.sheets()[0] #获取第一个sheet

#sheet = file.sheet_by_index(0)#获取第一个sheet

#cell_A1 = sheet.cell(0,0).value#获取第1行第1列的值

#row_A1 = sheet.row(0)[1].value#获取第1行第2列的值

#col_A2 = sheet.col(1)[2].value#获取第2列第2行的值

#print(cell_A1,row_A1,col_A2)

rows = sheet.nrows#获取行数

cols = sheet.ncols#获取列数

print('按行打印值,返回list值,一行一个list')

for r in range(rows):

row_vaule = sheet.row_values(r)

print(r,row_vaule)

print('按列打印值,返回list值,一列一个list')

for c in range(cols):#默认从0开始,如果从1开始(1,cols)

col_vuale = sheet.col_values(c)

print(c,col_vuale)

print('按第二行,第二列打印值')

print(sheet.cell(1,1))

print('‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐结束‐读‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐') if __name__=='__main__':

相关文档
最新文档