python Excel的使用

1.安装
pip install openpyxl
pip install xlrd
pip install xlwt

2.表格的操作实例

import openpyxl
import xlrd
import xlwt
# 创建一个工作簿
# 复制Excel表格
def copy(wen1,wen2):
    wb = openpyxl.Workbook()
    # 创建一个test_case的sheet表单
    wb.create_sheet('test_case')
    # 保存为一个xlsx格式的文件
    wb.save(wen2)
    # 读取excel中的数据
    # 第一步:打开工作簿
    wb = openpyxl.load_workbook(wen1)
    # 第二步:选取表单
    sh = wb['Sheet1']
    # 第三步:读取数据
    # 参数 row:行  column:列
    ce = sh.cell(row = 1,column = 1)   # 读取第一行,第一列的数据
    print(ce.value)
    # 按行读取数据 list(sh.rows)
    print(list(sh.rows)[1:])     # 按行读取数据,去掉第一行的表头信息数据
    for cases in list(sh.rows)[1:]:
        case_id =  cases[0].value
        case_excepted = cases[1].value
        case_data = cases[2].value
        print(case_excepted,case_data)
    # 关闭工作薄
    wb.close()



# 读取excel中的数据
def redxl(fname):
    bk = xlrd.open_workbook(fname)
    shxrange = range(bk.nsheets)
    try:
        sh = bk.sheet_by_name("Sheet1")
    except:
        print
        "no sheet in %s named Sheet1" % fname
    # 获取行数
    nrows = sh.nrows
    # 获取列数
    ncols = sh.ncols
    print
    "nrows %d, ncols %d" % (nrows, ncols)
    # 获取第一行第一列数据
    cell_value = sh.cell_value(1, 1)
    # print cell_value

    row_list = []
    # 获取各行数据
    for i in range(1, nrows):
        row_data = sh.row_values(i)
        row_list.append(row_data)

def setxl(result,result1):
    # 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)


    # 实例化一个Workbook()对象(即excel文件)
    wbk = xlwt.Workbook()
    # 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
    sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
    # 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)

    # 遍历result中的没个元素。

    for i in range(len(result)):
        # 对result的每个子元素作遍历,
        for j in range(len(result[i])):
            # 将每一行的每个元素按行号i,列号j,写入到excel中。
            sheet.write(i, j, result[i][j])
    sheet = wbk.add_sheet('Sheet2', cell_overwrite_ok=True)

    # 遍历result中的没个元素。

    for i in range(len(result1)):
        # 对result的每个子元素作遍历,
        for j in range(len(result1[i])):
            # 将每一行的每个元素按行号i,列号j,写入到excel中。
            sheet.write(i, j, result1[i][j])
    # 以传递的name+当前日期作为excel名称保存。
    wbk.save('./red.xls')

评论

刷新

友情链接