以下是可复制的,并产生所需的输出。在
import xlsxwriter, pandas as pd
workbook = xlsxwriter.Workbook('pandas_with_rich_strings.xlsx')
worksheet = workbook.add_worksheet()
# Set up some formats to use.
bold = workbook.add_format({'bold': True})
italic = workbook.add_format({'italic': True})
red = workbook.add_format({'color': 'red'})
df = pd.DataFrame({
'numCol': [1, 50, 327],
'plainText': ['plain', 'text', 'column'],
'richText': [
['This is ', bold, 'bold'],
['This is ', italic, 'italic'],
['This is ', red, 'red']
]
})
headRows = 1
for colNum in range(len(df.columns)):
xlColCont = df[df.columns[colNum]].tolist()
worksheet.write_string(0, colNum , str(df.columns[colNum]), bold)
for rowNum in range(len(xlColCont)):
if df.columns[colNum] == 'numCol':
worksheet.write_number(rowNum+headRows, colNum , xlColCont[rowNum])
elif df.columns[colNum] == 'richText':
worksheet.write_rich_string(rowNum+headRows, colNum , *xlColCont[rowNum])
else:
worksheet.write_string(rowNum+headRows, colNum , str(xlColCont[rowNum]))
workbook.close()
但是,如果不迭代每个列,并一次性将整个pandas数据帧写入Excel文件,并且包含write_rich_string
格式,我该如何做呢?在
以下操作无效。在
^{pr2}$
我不确定我的答案是否比您的方法好得多,但我已经减少了它,只使用一个for循环,并使用
pandas.DataFrame.to_excel()
将数据帧最初放在excel中。请注意,然后我使用worksheet.write_rich_string()
覆盖最后一列。在预期输出的.xlsx:
相关问题 更多 >
编程相关推荐