IT小白的成长之路我爱编程python技巧

python操作excel表格

2018-06-11  本文已影响6人  陆_志东

如果是老一点的xls版本的excel 使用xlwt xlrd
如果是新一点的xlsx版本的excel使用openpyxl

import xlrd
import xlwt
import openpyxl

def write_03_excel(path):
    wb = xlwt.Workbook()
    sheet = wb.add_sheet("2003测试表")
    value = [
        ["名称","价格","出版社","语言"],
        ["白夜", "22.3", "music", "中文"],
        ["该死的温柔", "32.4", "music", "中文"],
        ["啦啦啦", "26.7", "music", "中文"]
    ]
    for i in range(4):  # 总共4 行数据
        for j in range(0,len(value[i])):  # 每一行列表里面有多少项
            sheet.write(i,j,value[i][j])
    wb.save(path)
    print("2003写入数据成功")


def read_03_excel(path):
    workbook = xlrd.open_workbook(path)
    sheets = workbook.sheet_names()
    worksheet = workbook.sheet_by_name(sheets[0])
    for i in range(0,worksheet.nrows):   # worksheet.nrows 获取总共多少行
        row = worksheet.row(i)  # 获取第 i 行
        for j in range(0,worksheet.ncols):  # worksheet.ncols 获取总共多少列
            print(worksheet.cell_value(i,j),"\t",end="")    # 空一个制表符,不换行打印
        print() # 每行末尾打印换行


def write_07_excel(path):
    wb = openpyxl.Workbook()
    sheet = wb.active
    sheet.title = "2007测试表"
    value = [
        ["名称", "价格", "出版社", "语言"],
        ["光年", "22.3", "music", "中文"],
        ["泡沫", "32.4", "music", "中文"],
        ["德玛西亚", "26.7", "music", "中文"]
    ]
    for i in range(0,4):
        for j in range(0,len(value[i])):
            sheet.cell(row=i+1,column=j+1,value=str(value[i][j]))

    wb.save(path)
    print("写入数据成功!")


def read_07_excel(path):
    wb = openpyxl.load_workbook(path)
    names = wb.sheetnames   # 取到所有的表名字
    sheet = wb[names[0]]   # 拿到第一张表,如果有多个表,使用for i in循环 根据i 拿到表

    for row in sheet.rows:   # sheet.rows 拿到所有行,是一个二维数组
        for cell in row:   # row 是一行的数据,是一个一维数组,每个元素是一个单元格
            print(cell.value, "\t", end="")  # \t 是一个制表符。 每个单元格之间一个制表符隔开,不换行
        print()  # 一行打印完毕之后 换行。


file_path_2003 = "data/2003.xls"
file_path_2007 = "data/2007.xlsx"

write_03_excel(file_path_2003)
read_03_excel(file_path_2003)

write_07_excel(file_path_2007)
read_07_excel(file_path_2007)






上一篇 下一篇

猜你喜欢

热点阅读