xlsxwriter自动生成excel表格
支持自定义格式,行列合并,行高列宽(见main set_rc)
import xlsxwriter
import math
import time
# 设置excel格式集合
class Xlsx_Style:
__cell_style_keys=[]
__row_col_style_funcs=[]
def __init__(self,work_book:xlsxwriter.Workbook):
self.work_book=work_book
self.formats = {
}
format_title = self.work_book.add_format({
'bold': 1, # 字体加粗
'border': 1, # 单元格边框宽度
'align': 'center', # 水平对齐方式
'valign': 'vcenter', # 垂直对齐方式
'bg_color':'#DBE4E3', # 单元格背景颜色
})
self.formats.setdefault('title', format_title)
format_text = self.work_book.add_format({
'border': 1,
'align': 'center',
'valign': 'vcenter',
})
self.formats.setdefault('text', format_text)
format_err = self.work_book.add_format({
'bg_color': '#DC143C',
'border': 1,
'align': 'center',
'valign': 'vcenter',
})
self.formats.setdefault('erro', format_err)
def get_styles(self):
return self.formats
class Xlsx:
__merger_mode = ['cols','rows','cols:rows']
__cell_style = {
"value" : "","style":""}
def __init__(self, work_book_json:dict,):
# Create an excel file
self.name = work_book_json['name']
self.path = work_book_json['path']
self.sheets = work_book_json['sheets']
self.work_book = xlsxwriter.Workbook(self.path + self.name + ".xlsx", {
'strings_to_numbers': True})
self.sheets_tmp_var = {
}
self.Styles = Xlsx_Style(self.work_book).get_styles()
def chr2int(self, colmod:str):
charlist = [ord(v) - 64 for v in [x for x in colmod]] if len(colmod) > 1 else [ord(colmod) - 6