需求:
需求简单:但是感觉最后那部分遍历有意思:S型数组赋值,考虑到下标,简单题
先实现个差不多的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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])
|
需求代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
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的文章就介绍到这了,更多相关python绘制不同颜色excel内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_44001521/article/details/121141741