时间:2022-10-22 13:56:42 | 栏目:Python代码 | 点击:次
需求简单:但是感觉最后那部分遍历有意思: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])
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)
颜色没对上,意思差不多就行了