本文讲解的是利用openpyxl库对excel表格(.xslx文件)的存储与读取,读取部分内容参考python_通过openpyxl读写excel
需要安装openpyxl库
安装方法:
1.工作簿: Excel环境中用来储存并处理工作数据的文件,即excel文档就是工作簿
2.工作表: 工作表其实就是工作薄的一个模块。一个工作簿最多可以创建255个工作表。当前打开的工作表又叫活动表
3.单元格: 每个工作表里有行和列,行与列相交的方格称为单元格(cell)
#引入openpyxl库
import openpyxl
#利用openpyxl.Workbook()函数创建新的workbook(工作簿)对象,就是创建新的空的Excel文件。
wb = openpyxl.Workbook()
#wb.active就是获取这个工作簿的活动表,通常就是第一个工作表
sheet = wb.active
#可以用.title给工作表重命名。第一个工作表的名称就会由原来默认的“sheet1”改为"new title"。
sheet.title = 'new title'
# 写入一格
sheet['A1'] = '从善如登,虽难可达昆仑'
# 写入一行
row = [1,2,3]
sheet.append(row)
# 写入多行
rows = [['1','2'],['hello world'],['python是世界上最好的语言']]
for i in rows:
sheet.append(i)
wb.save('test.xlsx')
#引入openpyxl库
import openpyxl
#利用openpyxl.Workbook()函数创建新的workbook(工作簿)对象,就是创建新的空的Excel文件。
wb = openpyxl.Workbook()
#wb.active就是获取这个工作簿的活动表,通常就是第一个工作表
sheet = wb.active
#可以用.title给工作表重命名。第一个工作表的名称就会由原来默认的“sheet1”改为"new title"。
sheet.title = 'new title'
# 写入一格
sheet['A1'] = '从善如登,虽难可达昆仑'
# 写入一行
row = [1,2,3]
sheet.append(row)
# 写入多行
rows = [['1','2'],['hello world'],['python是世界上最好的语言']]
for i in rows:
sheet.append(i)
wb.save('test.xlsx')
读取类似与存储的反向
#第一步还是引入库
import openpyxl
#打开工作簿
wb = openpyxl.load_work('test.xlsx')
#获取工作表,有三种方法
sheet1 = wb.worksheets[0]
sheet2 = wb['new title']
sheet3 = wb[wb.sheetnames[0]]
print(sheet1, sheet2, sheet3)
#获取所有工作表的名字
sheetname = wb.sheetnames
print(sheetname)
# 获取工作表总行数
rows = sheet1.max_row
# 获取工作表总列数
cols = sheet1.max_column
# 总行,总列
print(rows, cols)
# 获取某一单元格内容(行, 列),例:2行1列,列表从1开始;也可以直接sheet1.cell(2, 1).value
cell = sheet1.cell(row=2, column=1).value
print(cell)
# 读取第一行的所有内容
row_list = []
for i in range(1, cols + 1):
cell_value = sheet1.cell(row=1, column=i).value
row_list.append(cell_value)
print(row_list)
# 读取第一列的所有内容
column_list = []
for i in range(1, rows + 1):
cell_value = sheet1.cell(row=i, column=1).value
column_list.append(cell_value)
print(column_list)
# 获取工作表的全部内容(逐行输出)
for i in range(1,rows+1):
content = []
for j in range(1,cols+1):
cell_value = sheet1.cell(row=i,column=j).value
content.append(cell_value)
print(content)