使用openpyxl的原因是我需要操作的是.xlsx文件。
1. 下载
pip install openpyxl
2.具体使用见代码
import openpyxl
def CreatExcel():
# 创建工作簿
wb = openpyxl.Workbook()
# 创建表单,生成工作簿时默认第一个表单为sheet,下面创建了一个新的表单test
wb.create_sheet('test')
# 生成Excel到指定位置,不写就是当前目录
wb.save("/xxx/test_excel.xlsx")
# 获取表单名称,使用下面的方法,不使用get_sheet_names,这样会有一个warning
print(wb.sheetnames)
# print(wb.get_sheet_names())
def ReadExcel():
# 打开目录
wb = openpyxl.open("/xxx/test_excel.xlsx")
# 选取表单,使用下面的方法,不使用get_sheet_by_name,这样会有一个warning
sheet = wb['test']
# sheet = wb.get_sheet_by_name('test')
# 读取第一行第一列内容
r1 = sheet.cell(row=1, column=1)
print(r1.value)
# 获取表单行数
r = sheet.max_row
print(r)
# 获取表单列数
c = sheet.max_column
print(c)
# 按行读取数据从第二行开始(第一行一般是表头)
for data_r in list(sheet.rows)[1:]:
name = data_r[0].value
age = data_r[1].value
hobby = data_r[2].value
print('{},{}岁,喜欢{}'.format(name, age, hobby))
# 按列读取,从第一列开始(没啥意义)
for data_c in list(sheet.columns):
c1 = data_c[0].value
c2 = data_c[1].value
c3 = data_c[2].value
c4 = data_c[2].value
print(c1, c2, c3, c4)
# 根据行和列读取数据
for i in range(2, r+1):
d1 = sheet.cell(i, 1).value
d2 = sheet.cell(i, 2).value
d3 = sheet.cell(i, 3).value
print('{},{}岁,喜欢{}'.format(d1, d2, d3))
if __name__ == '__main__':
ReadExcel()