python-excel

读取和写入

读取 用xlrd

开头

pip install xlrd #安装
import xlrd #引入
data = xlrd.open_workbook(filename)
sheet = data.sheet_by_index(sheet_indx) #通过索引顺序获取
sheet = data.sheet_by_name(sheet_name)#通过名称获取

单元格读取

sheet.cell(rowx,colx)   #返回单元格对象
sheet.cell_value(rowx,colx)   #返回单元格中的数据

行(row)操作

num_rows = sheet.nrows  #获取该sheet中的有效行数
sheet.row(rowx)  #返回由该行中所有的单元格对象组成的列表
sheet.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表

列(column)操作

ncols = sheet.ncols   #获取列表的有效列数
sheet.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表
sheet.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表

写入 用xlwt(只能写入xls)

开头

pip intsall xlwt #安装
import xlwt #引入
workbook = xlwt.Workbook(encoding = 'utf-8')
sheet1 = workbook.add_sheet('sheet1')

数据写入

sheet1.write(rowx,colx, label = 'test')
workbook.save('Excel_test.xls')  #保存(不能保存xlsx)

设置字体样式写入

style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 为样式创建字体
font.name = 'Times New Roman' 
font.bold = True # 黑体
font.underline = True # 下划线
font.italic = True # 斜体字
style.font = font # 设定样式
sheet1.write(rowx,colx, 'Formatted value', style) # 带样式的写入

设置行高与列宽:

sheet1.col(count).width = 256*20 #256为基准数
sheet1.row(count).height_mismatch = True
sheet1.row(count).height = 40*20  #40为基准数

给单元格添加公式

sheet1.write(rowx,colx, xlwt.Formula('A2*B2'))

合并行和列

sheet1.write_merge(first_rowx,first_colx, last_rowx,last_colx, 'Merge')

读取和写入 用openpyxl(能写入xlsx)

开头

pip install openpyxl #安装
from openpyxl import Workbook #引入
wb = Workbook() #新建工作表
from openpyxl import load_workbook
wb2 = load_workbook('test.xlsx') #打开已存在的工作表
wb.save('test.xlsx') #保存文件

操作sheet

sheet = wb.active #获取第一个sheet的属性
sheet0= wb['Sheet']#获取sheet1
sheet1 = wb.create_sheet("sheet1") # 给最后面添加sheet1
sheet2 = wb.create_sheet("sheet2", 0) # 给最前面添加sheet2
sheet3 = wb.create_sheet("sheet3", -1) # 给倒数第二个添加sheet3
sheet.title = "New Title" #改sheet名字
wb.sheetnames #返回所有sheet的名字

操作单元格

sheet['A4']  = 4 #给A4单元格赋值值
sheet["A1"] = "=SUM(1, 1)" #给A1单元格输入公式
cell_range = sheet['A1':'C2'] #可用切片的方式访问单元格
sheet.merge_cells('A2:D2') #合并单元格
sheet.unmerge_cells('A2:D2') #拆分单元格
sheet.move_range("D4:F10", rows=-1, cols=2) #移动范围单元格,这会将 D4:F10 单元格向上移动一行向右移动两列,已存在的单元格将会被覆盖
sheet1['C3'].value = 'python知识学堂'
sheet1.cell(row=1, column=1).value ='知识学堂' #1表示第一格(读写一样)

操作行和列

colC = sheet['C']
col_range = sheet['C:D'] #访问列
row10 = sheet[10]
row_range = sheet[5:10] #访问行
sheet.insert_rows(5) #插入第5行
sheet.insert_cols(5) #插入第5列
sheet.delete_rows(5) #删除第5行
sheet.delete_cols(5) #删除第5列
sheet.column_dimensions.group('A','D', hidden=True) #隐藏列
sheet.row_dimensions.group(1,10, hidden=True) #隐藏行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值