网络编程
位置:首页>> 网络编程>> Python编程>> 用python如何绘制表格不同颜色的excel

用python如何绘制表格不同颜色的excel

作者:广大菜鸟  发布时间:2022-08-09 22:05:11 

标签:python,绘制,excel

需求:

用python如何绘制表格不同颜色的excel

需求简单:但是感觉最后那部分遍历有意思:S型数组赋值,考虑到下标,简单题

先实现个差不多的


m = 5
cols = 9
rows = 4
nums = [0, 1]
array = [[-1 for _ in range(9)] for _ in range(4)]
i, j = 0, 0
t = 0
index = -1
while t < cols * rows:
   if i % rows == 0 and i > 0:
       j += 1
       i -= 1
   if i < 0:
       j += 1
       i += 1
   # if t % m == 0:
   #     index = (index + 1) % len(nums)
   array[i][j] = t  # index
   if j % 2 == 0:  # 0,2,..2n 下
       i += 1
   else:  # 1,3, 2n+1 上
       i -= 1
   t += 1

for i in range(4):
   print(array[i])

用python如何绘制表格不同颜色的excel

需求代码:


from openpyxl import Workbook
from openpyxl.styles import PatternFill, Side, Border

# 仿照excel格式
# excel文件路径
file_path = 'C:/Users/Lenovo/Desktop/工作簿2.xlsx'

colors = ['000000', '44546A', 'CC00FF', '00008B']
colorsLen = len(colors)
fills = [PatternFill("solid", fgColor=color) for color in colors]
workbook = Workbook()
sheet = workbook.create_sheet("Sheet1", 0)
rows, cols = 19, 9
colorIndex = -1
block_height = 5

# 按行
for i in range(int(rows / block_height)):
   for j in range(cols):
       colorIndex = (colorIndex + 1) % colorsLen
       for p in range(block_height):
           row = block_height * i + p
           col = j
           cell = sheet.cell(column=col + 1, row=row + 1)
           cell.fill = fills[colorIndex]
           cell.border = Border(left=Side(style='thin'),
                                right=Side(style='thin'),
                                top=Side(style='thin'),
                                bottom=Side(style='thin'))

# 按列
if rows % block_height != 0:
   newRows = rows % block_height
   preRows = rows - rows % newRows - 1
   newCols = cols
   i, j = 0, 0
   t = 0
   while t < newCols * newRows:
       if i % newRows == 0 and i > 0:
           j += 1
           i -= 1
       if i < 0:
           j += 1
           i += 1
       if t % block_height == 0:
           colorIndex = (colorIndex + 1) % colorsLen
       cell = sheet.cell(column=j + 1, row=preRows + i + 1)
       cell.fill = fills[colorIndex]
       cell.border = Border(left=Side(style='thin'),
                            right=Side(style='thin'),
                            top=Side(style='thin'),
                            bottom=Side(style='thin'))
       if j % 2 == 0:  # 0,2,..2n 下
           i += 1
       else:  # 1,3, 2n+1 上
           i -= 1
       t += 1

workbook.save(file_path)

# 下面是学习读取的部分代码
# wb = openpyxl.load_workbook(file_path)
# sheet_name = 'Sheet1'
# sheet = wb.get_sheet_by_name(sheet_name)
# for r in range(1, sheet.max_row + 1):
#     for c in range(1, sheet.max_column + 1):
#         item = sheet.cell(row=r, column=c)
#         print(item, end=' ')
#     print()
# wb.save(file_path)

用python如何绘制表格不同颜色的excel

颜色没对上,意思差不多就行了

来源:https://blog.csdn.net/weixin_44001521/article/details/121141741

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com