在最初处理excel表格时,我用的是xlwt和wlrd,表格后缀是.xls。但是,在处理时发现,一个sheet的记录长度如果超过65535,就写入不进去了。
后来,就采用openpyxl库来处理了,而且,处理的是xlsx文件。
xls文件处理传送门:
Python我的模块-利用python读写excel文件_liranke的博客-CSDN博客
Python我的模块-利用python读写excel文件,excel文件合并通用模块_liranke的博客-CSDN博客
和其它的库的引入方式一样,
import openpyxl
使用openpyxl库的相关函数,创建xlsx表格,并且写入数据 。
# -*- coding: utf-8 -*-
import os
import sys
import openpyxl
def openxls_create():
'''
创建xlsx表格,并且写入数据
'''
workbook = openpyxl.Workbook() #创建workbook
sheet_name = "mysheet1"
sheet0 = workbook.create_sheet(sheet_name,0) # 创建sheet
data_list = [["姓名","职业","毕业院校"],
["张三","医生","北京大学"],
["王武","教师","清华大学"],
["刘丹","教师","复旦大学"]]
#写入数据到sheet0
for i in range(len(data_list)):
for j in range(len(data_list[i])):
sheet0.cell(i+1,j+1).value = data_list[i][j] # 写入数据
rows=sheet0.max_row
cols=sheet0.max_column
print("rows==",rows)
print("cols==",cols)
fname = '人员列表.xlsx';
workbook.save(fname) # 保存文件
return fname
if __name__ == '__main__':
openxls_create();
运行结果:
log:
rows== 4
cols== 3
生成了'人员列表.xlsx'文件。
文件内容如下:
姓名 | 职业 | 毕业院校 |
张三 | 医生 | 北京大学 |
王武 | 教师 | 清华大学 |
刘丹 | 教师 | 复旦大学 |
使用openpyxl库的相关函数,读取数据 。
def openxls_read(fname):
wb=load_workbook(fname,data_only=True);
sheet0=wb['mysheet1'] #获取sheet
for rows in sheet0: #遍历每一行
for cell in rows:
print(cell.value,end=',')
print()
if __name__ == '__main__':
# openxls_create();
fname = '人员列表.xlsx';
openxls_read(fname)
运行结果:
% python3 openxls_creat_read.py
姓名,职业,毕业院校,
张三,医生,北京大学,
王武,教师,清华大学,
刘丹,教师,复旦大学,
按照列读取:
for columns in sheet0.columns: #遍历每一列
for cell in columns:
print(cell.value,end=',')
print()
运行结果:
% python3 openxls_creat_read.py
姓名,张三,王武,刘丹,
职业,医生,教师,教师,
毕业院校,北京大学,清华大学,复旦大学,
使用openpyxl处理excel表格,就是这么简单。