Python3 对Excel表格进行读取、写入、追加
常用函数
import openpyxl
wb = openpyxl.load_workbook('disbursement_order_history_20211022_0(1).xlsx')
sheets = wb.sheetnames
print(sheets)
sheetName = sheets[0]
print(sheetName)
sheet = wb[sheetName]
print(sheet)
table = wb.active
print(table.title)
print(sheet.max_row)
print(sheet.max_column)
wb.create_sheet('Test1')
sheets = wb.sheetnames
print(sheets)
wb.remove(wb['Test1'])
sheets = wb.sheetnames
print(sheets)
写入
import openpyxl
excelData = openpyxl.Workbook()
excelData.create_sheet('Test1')
exceltable = excelData.active
exceltable.title = 'Test'
exceltable.cell(row=1, column=1, value='Test1')
exceltable.cell(row=1, column=2, value='Test2')
exceltable.cell(row=1, column=3, value='Test3')
exceltable.cell(row=1, column=4, value='Test4')
exceltable.cell(row=1, column=5, value='Test5')
exceltable.cell(row=2, column=1, value='Test15')
excelData.save('excel_test.xlsx')
print("xlsx格式表格写入数据成功!")
读取
print('使用openpyxl读取xlsx文件:')
workbook = openpyxl.load_workbook('excel_test.xlsx')
sheet = workbook['Test']
nrows = sheet.rows
ncols = sheet.columns
for row in sheet.rows:
for cell in row:
print(cell.value, "\t", end="")
print()
for row in ncols:
line = [col.value for col in row]
print(line)
print('读取指定单元格内容:')
print(sheet.cell(1, 1).value)
追加写入
print('综合使用openpyxl对Excel内容追加写入:')
workbook = openpyxl.load_workbook('excel_test.xlsx')
print(workbook.defined_names.definedName)
print(workbook.sheetnames)
table = workbook.active
print(table.title)
nrows = table.max_row
ncolumns = table.max_column
values = ['E', 'X', 'C', 'E', 'L']
for value in values:
table.cell(nrows + 1, 1).value = value
nrows = nrows + 1
workbook.save('excel_test.xlsx')
使用封装函数进行读取和写入
def write_excel_xlsx(path, sheet_name, value):
index = len(value)
try:
workbook = openpyxl.load_workbook(path)
except:
workbook = openpyxl.Workbook()
print('except')
sheet = workbook.active
sheet.title = sheet_name
maxRows = sheet.max_row
maxColumn = sheet.max_column
if maxRows == 1:
maxRows = 0
if maxColumn == 1:
maxColumn = 0
print(maxRows)
print(maxColumn)
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.cell(row=maxRows + i + 1, column=j + 1, value=str(value[i][j]))
workbook.save(path)
print("xlsx格式表格写入数据成功!")
def read_excel_xlsx(path, sheet_name):
workbook = openpyxl.load_workbook(path)
sheet = workbook[sheet_name]
for row in sheet.rows:
for cell in row:
print(cell.value, "\t", end="")
print()
book_name_xlsx = 'xlsx格式测试工作簿.xlsx'
sheet_name_xlsx = 'xlsx格式测试表'
value3 = [["姓名", "性别", "年龄", "城市", "职业"],
["小米", "女", "26", "石家庄", "前台"],
["小明", "男", "55", "南京", "运维工程师"],
["小马", "女", "27", "苏州", "销售"], ]
write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value3)
value4 = [
["小李", "男", "36", "北京", "运维工程师"],
["小吴", "男", "28", "湖南", "程序员"],
["小皮", "女", "27", "广东", "老师"],
]
write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value4)
read_excel_xlsx(book_name_xlsx, sheet_name_xlsx)