工作中经常遇到从excel文件中读取数据进行操作,或将已处理好的数据写入excel文件.下文中整理出python操作Excel最基础的操作.可根据工作具体需要将下文代码封装成类或函数方便使用.
代码:
# –*– coding: utf-8 –*–
# @Time : 2019/2/18 21:21
# @Author : Damon_duanlei
# @FileName : read_excel.py
# @BlogsAddr : https://blog.csdn.net/Damon_duanlei
import xlrd
# 1. 打开文件
work_book = xlrd.open_workbook(r"D:\myself\test\test.xlsx")
# 2. 显示所有的sheet页
sheet_names = work_book.sheet_names()
print(sheet_names)
# 3. 创建sheet页对象
# 3.1 通过sheet页名称创建sheet页对象
work_sheet_1 = work_book.sheet_by_name("Sheet1")
# 3.2 通过sheet页索引创建sheet页对象
work_sheet_2 = work_book.sheet_by_index(0)
# 4.获取excel文件sheet页 行列数
# 4.1 行数
num_rows = work_sheet_1.nrows
print("Excel文件的行数为:{}行".format(num_rows))
# 4.2 列数
num_cols = work_sheet_2.ncols
print("Excel文件的列数为:{}列".format(num_cols))
# 5. 读取单元格内容
# 5.1整行读取
for curr_row in range(num_rows):
row = work_sheet_1.row_values(curr_row)
print('row%s is %s' % (curr_row, row))
# 5.2整列读取
for curr_col in range(num_cols):
col = work_sheet_2.col_values(curr_col)
print('col%s is %s' % (curr_col, col))
# 5.3逐个单元格读取
for rown in range(num_rows):
for coln in range(num_cols):
cell_vlue = work_sheet_1.cell_value(rown, coln)
# 如需读到空即开始读取下一列 可使用下方注释代码
# if cell_vlue is None:
# break
print("{}行{}列:{}\t".format(rown, coln, cell_vlue), end="")
if coln == 3:
print("")
运行结果:
['Sheet1', 'Sheet2', 'Sheet3']
Excel文件的行数为:5行
Excel文件的列数为:4列
row0 is ['名称', '性别', '年龄', '毛色']
row1 is ['臭臭', 'boy', 9.0, '黄白花']
row2 is ['小迪', 'boy', 2.0, '咖色']
row3 is ['笨笨', 'girl', 4.0, '黑白花']
row4 is ['亮亮', 'boy', 2.0, '黄白花']
col0 is ['名称', '臭臭', '小迪', '笨笨', '亮亮']
col1 is ['性别', 'boy', 'boy', 'girl', 'boy']
col2 is ['年龄', 9.0, 2.0, 4.0, 2.0]
col3 is ['毛色', '黄白花', '咖色', '黑白花', '黄白花']
0行0列:名称 0行1列:性别 0行2列:年龄 0行3列:毛色
1行0列:臭臭 1行1列:boy 1行2列:9.0 1行3列:黄白花
2行0列:小迪 2行1列:boy 2行2列:2.0 2行3列:咖色
3行0列:笨笨 3行1列:girl 3行2列:4.0 3行3列:黑白花
4行0列:亮亮 4行1列:boy 4行2列:2.0 4行3列:黄白花
代码:
# –*– coding: utf-8 –*–
# @Time : 2019/2/18 22:12
# @Author : Damon_duanlei
# @FileName : write_excel.py
# @BlogsAddr : https://blog.csdn.net/Damon_duanlei
import xlsxwriter
# 1.创建工作薄对象
work_book = xlsxwriter.Workbook(r"D:\myself\test\test.xlsx")
# 2.创建工作表对象
work_sheet = work_book.add_worksheet("sheet1")
# 3.写入内容
# 3.1 按行写入
work_sheet.write_row(row=0, col=0, data=["aa", "bb"]) #指定起始单元格,写入数据为可迭代类型
# 3.2 按列写入
work_sheet.write_column(row=0, col=0, data=["aa", "bb"])
work_book.close()