2024-09-28 22:31:49 发布
网友
我想将A1:E14格式设置为美元,F1:K14格式为百分比,A15:Z1000格式为美元。在XlsxWriter中有没有一种方法可以做到这一点?在
A1:E14
F1:K14
A15:Z1000
我知道如何将整列格式化为美元/百分比,但不知道如何格式化部分列——无论我最后做什么,都会覆盖列F:K。在
F:K
数据是从大熊猫开始的,所以很乐意解决那里的问题。以下似乎不起作用:
sheet.set_column('A1:E14', None, money_format)
更多代码:
我看不到仅使用xlsxwriter和Pandas实现每个单元格格式的方法,但是可以使用openpyxl在单独的步骤中应用格式化,如下所示:
xlsxwriter
openpyxl
import openpyxl def write_format(ws, cell_range, format): for row in ws[cell_range]: for cell in row: cell.number_format = format sheet_name = "Total" with pd.ExcelWriter(write_path) as writer: write_worksheet(df, writer, sheet_name=sheet_name) wb = openpyxl.load_workbook(write_path) ws = wb.get_sheet_by_name(sheet_name) money_fmt = '$#,##0_-' pct_fmt = '0.00%' write_format(ws, 'A1:G1', money_fmt) write_format(ws, 'A1:E14', money_fmt) write_format(ws, 'F1:K14', pct_fmt) write_format(ws, 'F15:Z1000', money_fmt) wb.save(write_path)
当尝试使用xlsxwriter时,它总是覆盖来自Pandas的现有数据。但是如果Pandas被要求重写数据,那么它就会覆盖所有应用的格式。似乎没有任何方法可以在不覆盖内容的情况下对现有单元格应用格式。例如,write_blank()函数声明:
This method is used to add formatting to a cell which doesn’t contain a string or number value.
我看不到仅使用
xlsxwriter
和Pandas实现每个单元格格式的方法,但是可以使用openpyxl
在单独的步骤中应用格式化,如下所示:当尝试使用
xlsxwriter
时,它总是覆盖来自Pandas的现有数据。但是如果Pandas被要求重写数据,那么它就会覆盖所有应用的格式。似乎没有任何方法可以在不覆盖内容的情况下对现有单元格应用格式。例如,write_blank()函数声明:相关问题 更多 >
编程相关推荐