pip install openpyxl
- 创建一个新的工作薄
from openpyxl import Workbook wb = Workbook() wb1 = wb.create_sheet("index") # 默认最后一个 wb1 = wb.create_sheet("index",0) # 第一个
- 保存
wb1.save('jam.xlsx')
- 修改工作薄的名称
wb1.title = "New Title"
- excel 添加数据
wb1["A1"] = "jamlee" # 根据索引
如果尚不存在,则创建一个单元格。值可以直接分配
wb1.cell(row=3,column=6,value="干干巴巴") # 根据单元格位置来添加
# 函数 wb1["A5"] = 4 wb1["A6"] = 5 wb1["A7"] = "=sum(A5:A6)"
# append 可以一次添加多行数据,从第一行空白行开始(下面都是空白行)写入。 row = [1 ,2, 3, 4, 5] sheet.append(row)
- extel 获取数据
from openpyxl import load_workbook #导入模块 wb = load_workbook(filename = 'jam.xlsx') #打开文件,默认可读写,若有需要可以指定write_only和read_only为True
# 获取所有的工作薄名称 wb.sheetnames
#找到工作表 sheet = wb['index']
# 索引 sheet["A2"].value # 位置 sheet.cell(row=2,column=2).value
sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。 sheet.columns类似,不过里面是每个tuple是每一列的单元格。 # 因为按行,所以返回A1, B1, C1这样的顺序 for row in sheet.rows: for cell in row: print(cell.value) # A1, A2, A3这样的顺序 for column in sheet.columns: for cell in column: print(cell.value)
# 获得某行的数据 for cell in list(sheet.rows)[2]: print(cell.value)
# 获取上面sum的单元格注意 (注意Python获取到是None时 需要去excel表实时刷新这样就不会是空了) 如果是读取的时候需要加上data_only=True这样读到A7返回的就是数字,如果不加这个参数,返回的将是公式本身'=sum(A5:A6)'