如何将整数拆分到Excel不同单元格?Python实现求助
整数拆分到Excel单元格的实现方案
要把整数拆成单个数字分别写入不同单元格,核心是先把整数转为字符串遍历每个字符,再逐个写入对应位置。针对你的代码,修改如下:
核心思路
- 将整数转为字符串,逐个提取每个数字字符
- 保持目标列不变,从指定起始行开始,逐行写入每个数字
- 可选将字符转回整数,确保单元格是数值类型
修改后的代码
from openpyxl.utils import get_column_letter # 遍历你的数据集合synopData for row_idx in range(len(synopData)): for col_idx in range(len(synopData[row_idx])): # 获取当前要拆分的整数 target_num = synopData[row_idx][col_idx] # 把整数转成字符串,拆分单个数字 digit_chars = str(target_num) # 原代码中的起始列和起始行逻辑保留 base_col = col_idx + 7 base_row = row_idx + 2 # 逐个写入每个数字到同一列的不同行 for digit_offset, char in enumerate(digit_chars): # 计算单元格坐标:列不变,行随数字偏移递增 cell_coord = f"{get_column_letter(base_col)}{base_row + digit_offset}" # 转成整数写入,若需要字符串可去掉int() newSheet[cell_coord] = int(char)
单独测试示例(拆分单个整数)
如果只是测试单个整数拆分(比如把12345写入A1到A5),可以用这段简化代码:
from openpyxl.utils import get_column_letter from openpyxl import Workbook wb = Workbook() newSheet = wb.active target_num = 12345 start_col = 1 # 对应A列 start_row = 1 # 对应第1行 digit_chars = str(target_num) for idx, char in enumerate(digit_chars): cell_coord = f"{get_column_letter(start_col)}{start_row + idx}" newSheet[cell_coord] = int(char) wb.save("test_split_num.xlsx")
内容的提问来源于stack exchange,提问作者kim james
相关产品推荐
相关产品推荐

