python 操作 Excel 读入 写出 原格式写出

文章目录

  • 前言
  • 一、使用


前言

对Excel 进行操作,实现:
读取
写出
原格式 写出

一、使用

代码如下(示例):

# -*- coding: utf-8 -*-
"""
Created on Wed Nov 25 15:51:26 2020

@author: dujidan
"""

import xlrd
import xlwt
import sys
from openpyxl import load_workbook


# 读取表格
def xls2list(xls, sheet_indx):
    # 打开文件
    data = xlrd.open_workbook(xls)
    # 通过文件名获得工作表,获取工作表1
    table = data.sheet_by_index(sheet_indx)
    table_list = []
    for row in range(table.nrows):
        cols = [str(cell) for cell in table.row_values(row)]
        table_list.append(cols)
    return table_list


# 将内容写出到 Excel 中
def write2xls(list_2D, out_file):
    book = xlwt.Workbook(encoding = 'utf-8') #创建一个Excel对象
    worksheet = book.add_sheet('sheet1') #添加一个名为sheet1的sheet
    # 加边框
    borders = xlwt.Borders() # Create Borders
    borders.left = xlwt.Borders.THIN
    borders.right = xlwt.Borders.THIN
    borders.top = xlwt.Borders.THIN
    borders.bottom = xlwt.Borders.THIN
    borders.left_colour = 0x40
    borders.right_colour = 0x40
    borders.top_colour = 0x40
    borders.bottom_colour = 0x40
    style = xlwt.XFStyle() # Create Style
    style.borders = borders # Add Borders to Style
    # 前2行合并 单元格
    for row in range(0, 2):
        worksheet.write_merge(row, row, 0, 8, list_2D[row][0], style)
    for row in range(2,len(list_2D)):
        for col in range(len(list_2D[row])):
            worksheet.write(row, col, list_2D[row][col], style) #在索引为i, j处写入content
    book.save(out_file) # 保存
                
# 原格式 写出到 Excel 中
def out(out_list, in_xlsx, out_xlsx):    
    workbook_ = load_workbook(in_xlsx)
    sheetnames = workbook_.sheetnames
    sheet = workbook_[sheetnames[0]]
    for i in range(len(out_list[0])):
        D = 'D' + str(4 + i)  #Excel 对应的位置
        G = 'I' + str(4 + i)
        sheet[D] = out_list[0][i]
        sheet[G] = out_list[1][i]
    workbook_.save(out_xlsx)


if __name__ == '__main__':
    lims_xlsx = sys.argv[1]
    manual_xlsx = sys.argv[2]
    out_xlsx = sys.argv[3]



你可能感兴趣的:(Python)