Python 整个列的OpenPyXL集合编号\u格式

Python 整个列的OpenPyXL集合编号\u格式,python,django,excel,openpyxl,Python,Django,Excel,Openpyxl,我正在将一些数据导出到Excel,并且在导出到Excel文件时,我已成功实现了对列中每个填充单元格的格式设置,如下所示: 导入openpyxl 从openpyxl.utils导入获取列字母 wb=openpyxl.Workbook() ws=wb.active #向工作表中添加行 对于数据中的行: ws.append(行) #从“D”列开始禁用列中的数字格式 #需要为每个单元格手动执行此操作 对于范围内的列(3,ws.max_列+1): 对于ws[get_column_letter(col)]中

我正在将一些数据导出到Excel,并且在导出到Excel文件时,我已成功实现了对列中每个填充单元格的格式设置,如下所示:

导入openpyxl
从openpyxl.utils导入获取列字母
wb=openpyxl.Workbook()
ws=wb.active
#向工作表中添加行
对于数据中的行:
ws.append(行)
#从“D”列开始禁用列中的数字格式
#需要为每个单元格手动执行此操作
对于范围内的列(3,ws.max_列+1):
对于ws[get_column_letter(col)]中的单元格:
cell.number_格式=“@”
#将数据导出到Excel文件。。。
但这只会格式化每列中填充的单元格。此列中的其他单元格仍具有
General
格式


如何将此列中的所有空单元格设置为
@
,以便在导出的Excel文件中编辑这些列中的单元格的任何人都不会遇到将手机号码作为实际号码插入的问题。

对于openpyxl,必须始终分别设置每个单元格的样式。如果为列设置了样式,则Excel在创建新单元格时将应用这些样式,但样式始终应用于单个单元格。

对于openpyxl,必须始终分别为每个单元格设置样式。如果您为列设置了样式,则Excel在创建新单元格时将应用这些样式,但样式始终应用于单个单元格。

当您在该列的行上仅迭代到
max\u单元格时,这些单元格是唯一正在重新格式化的单元格。虽然无法重新格式化列,但可以使用不同的方式将格式至少设置为特定单元格:

last_cell = 100

for col in range(3, ws.max_column+1):
    for row in range(1, last_cell):
        ws.cell(column=col, row=row).number_format = '@'  # Changing format to TEXT

以下内容将格式化列中的所有单元格,直到最后一个单元格,您可以使用它,虽然它不完全是您所需要的,但它已经足够接近了。

当您在该列的行上迭代时,仅对
max\u单元格进行格式化。
这些单元格是唯一被重新格式化的单元格。虽然无法重新格式化列,但可以使用不同的方式将格式至少设置为特定单元格:

last_cell = 100

for col in range(3, ws.max_column+1):
    for row in range(1, last_cell):
        ws.cell(column=col, row=row).number_format = '@'  # Changing format to TEXT

下面将格式化列中的所有单元格,直到最后一个单元格,您可以使用它,虽然它不完全是您所需要的,但已经足够近了。

这样就可以了,谢谢。我刚刚将行范围更改为将一些行填充到现有行数,如
ws.max_row+100
,这样任何添加新行的人都可以自动格式化单元格。谢谢。我刚刚将行范围更改为将一些行填充到现有行数,如
ws.max_row+100
,这样任何添加新行的人都可以自动格式化单元格。