对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]