cho gấu trúc 0. 24
Bên dưới không hoạt động nữa
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
Thay vào đó, hãy tạo một đối tượng định dạng ô và viết lại nội dung của hàng đầu tiên [tiêu đề của bạn] từng ô một với đối tượng định dạng ô mới
Bây giờ, bạn là bằng chứng trong tương lai
Sử dụng mã giả sau
# [1] write df to excel as usual
writer = pd.ExcelWriter[path_output, engine='xlsxwriter']
df.to_excel[writer, sheet_name, index=False]
# [2] do formats for other rows and columns first
# [3] create a format object with your desired formatting for the header, let's name it: headercellformat
# [4] write to the 0th [header] row **one cell at a time**, with columnname and format
for columnnum, columnname in enumerate[list[df.columns]]:
worksheet.write[0, columnnum, columnname, headercellformat]
Tôi đang lưu pandas DataFrame to_excel bằng xlsxwriter. Tôi đã quản lý để định dạng tất cả dữ liệu của mình [đặt độ rộng cột, kích thước phông chữ, v.v.] ngoại trừ việc thay đổi phông chữ của tiêu đề và tôi không thể tìm ra cách thực hiện. Đây là ví dụ của tôi
import pandas as pd
data = pd.DataFrame[{'test_data': [1,2,3,4,5]}]
writer = pd.ExcelWriter['test.xlsx', engine='xlsxwriter']
data.to_excel[writer, sheet_name='test', index=False]
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format[{'font_name': 'Arial', 'font_size': 10}]
header_fmt = workbook.add_format[{'font_name': 'Arial', 'font_size': 10, 'bold': True}]
worksheet.set_column['A:A', None, font_fmt]
worksheet.set_row[0, None, header_fmt]
writer.save[]
Dòng áp chót cố gắng đặt định dạng cho tiêu đề không làm được gì
Tôi nghĩ trước tiên bạn cần đặt lại kiểu tiêu đề mặc định, sau đó bạn có thể thay đổi nó
pd.core.format.header_style = None
Tất cả cùng nhau
import pandas as pd
data = pd.DataFrame[{'test_data': [1,2,3,4,5]}]
writer = pd.ExcelWriter['test.xlsx', engine='xlsxwriter']
pd.core.format.header_style = None
data.to_excel[writer, sheet_name='test', index=False]
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format[{'font_name': 'Arial', 'font_size': 10}]
header_fmt = workbook.add_format[{'font_name': 'Arial', 'font_size': 10, 'bold': True}]
worksheet.set_column['A:A', None, font_fmt]
worksheet.set_row[0, None, header_fmt]
writer.save[]
Giải thích bởi jmcnamara, cảm ơn bạn
Trong Excel, định dạng ô ghi đè định dạng hàng ghi đè định dạng cột. pd.core.format.header_style
được chuyển đổi thành định dạng và được áp dụng cho từng ô trong tiêu đề. Vì vậy, giá trị mặc định không thể bị ghi đè bởi set_row[]
. Đặt pd.core.format.header_style
thành
pd.core.format.header_style = None
0 có nghĩa là các ô tiêu đề không có định dạng do người dùng xác định và do đó, nó có thể bị ghi đè bởi set_row[]
def to_excel[self, excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, column=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, . từ gấu trúc. io. định dạng. nhập excel Trình định dạng ExcelFormatter = ExcelFormatter[self, na_rep=na_rep, cols=columns, header=header, float_format=float_format, index=index, index_label=index_label, merge_cells=merge_cells, inf_rep=inf_rep]. write[excel_writer, sheet_name=sheet_name, startrow=startrow, startcol=startcol, freeze_panes=freeze_panes, engine=engine]################################################# . # # SPDX-Giấy phép-Định danh. BSD-2-Khoản # Bản quyền 2013-2023, John McNamara, jmcnamara@cpan. org # nhập gấu trúc dưới dạng pd # Tạo khung dữ liệu Pandas từ một số dữ liệu. dữ liệu = [10, 20, 30, 40, 50, 60] df = pd. Khung dữ liệu [{'Tiêu đề'. dữ liệu, 'Tiêu đề dài hơn nên được bao bọc'. data}] # Tạo trình ghi Pandas Excel bằng cách sử dụng XlsxWriter làm công cụ. nhà văn = pd. ExcelWriter["pandas_header_format. xlsx", engine='xlsxwriter'] # Chuyển đổi khung dữ liệu thành đối tượng XlsxWriter Excel. Lưu ý rằng chúng tôi tắt # tiêu đề mặc định và bỏ qua một hàng để cho phép chúng tôi chèn tiêu đề # do người dùng xác định. df. to_excel[writer, sheet_name='Sheet1', startrow=1, header=False] # Lấy sổ làm việc xlsxwriter và các đối tượng trang tính. sổ làm việc = nhà văn. bảng tính sách = nhà văn. sheet['Sheet1'] # Thêm định dạng tiêu đề. header_format = sổ làm việc. add_format[{ 'in đậm'. Đúng, 'text_wrap'. Đúng, 'valign'. 'top', 'fg_color'. '#D7E4BC', 'đường viền'. 1}] # Viết tiêu đề cột theo định dạng đã xác định. đối với col_num, giá trị ở dạng liệt kê [df. cột. giá trị]. bảng tính. write[0, col_num + 1, value, header_format] # Đóng trình ghi Pandas Excel và xuất tệp Excel. nhà văn. đóng[]