读写excel:csv模块和openpyxl模块对比

csv模块

1.读:

# 读取文件内容
import csv
with open('./test2.csv', newline='', encoding='utf-8') as f:
    # encoding = 'utf-8'防止出现乱码
    # newline=''是避免出现两倍行距
    rows = csv.reader(f)
    for i in rows:
        print(i)
print('文件读取完毕')

2.写入:

# 写入数据
import csv
with open('./test.csv', 'a', newline='') as f:

    writer = csv.writer(f)
    # 追加内容
    writer.writerow([1,2,3,4,5])

openpyxl

1.读取已有文件:

# 读取 excel
import openpyxl

filename = '周董.xlsx'
flag = False
# 打开指定 excel 文件
wb = openpyxl.load_workbook(filename)
# 获取所有活动表
sheetnames = wb.sheetnames
print("所有活动表:{}".format(sheetnames))
# # 打开指定活动表
# sheet = wb['周董']
# 获取活动表
sheet = wb.active
# 获取指定单元格
A1_cell = sheet['A1']
print("A1单元格:{}".format(A1_cell))
# 单元格的内容
print("A1单元格的值:{}".format(A1_cell.value))
# 获得行数
rows = sheet.max_row
print("行:{}".format(rows))
# 获得列数
columns = sheet.max_column
print("列:{}".format(columns))
# 追加数据
if flag:
    data = ['简介', '周杰伦(Jay Chou),1979年1月18日出生于台湾省新北市,祖籍福建省泉州市永春县,中国台湾流行乐男歌手、音乐人、演员、导演、编剧等,毕业于淡江中学']
    for i in range(1, columns+1):
        sheet.cell(rows+1, i).value = data[i-1]
    wb.save(filename)

# 打印行和列
for row in range(1,rows+1):
    for column in range(1,columns+1):
        print(sheet.cell(row,column).value, end='  ')
    print('\n')

# 切换活动表,并添加数据
if flag:
    sheet2 = wb.create_sheet('sheet2')
    data = [[1,2,3],[4,5,6]]
    for x in data:
        sheet2.append(x)
    wb.save(filename)

2.创建新excel:

# 引用openpyxl
import openpyxl

filename = '周董.xlsx'
# 创建空excel
wb = openpyxl.Workbook()
# 获取活动表
sheet = wb.active
# 设置工作表名称
sheet.title = '周董'
# 设置单元格内容
sheet['A1'] = '个人情况:'
# 写入单行/多行数据
rows = [['姓名:','周杰伦'],['出生','台湾省新北市'],['代表作', '龙卷风、简单爱、双截棍等']]
for row in rows:
    sheet.append(row)
# 保存新建的文件,并命名(若文件存在,则会被覆盖)
wb.save(filename)

参考:https://blog.csdn.net/weixin_38336920/article/details/82703209

猜你喜欢

转载自www.cnblogs.com/KeenLeung/p/12186157.html
今日推荐