我有一个包含一些值的列表,例如。 values = ['1', '2', '3']
。
我试着将它们放入一个单元格,但是新行中的每个值,所以看起来应该是这样的:
1
2
3
在一个牢房里。
我想这样做:
sheet.write(1, 11, '\n'.join(values), style2)
但它似乎不起作用,因为项目添加在一行中,所以它看起来像:
123
答案 0 :(得分:2)
如果您还以单元格格式指定\n
,则应该使用字符串中的text_wrap
换行符(请参阅docs):
import xlsxwriter
workbook = xlsxwriter.Workbook('wrap.xlsx')
worksheet = workbook.add_worksheet()
wrap_format = workbook.add_format({'text_wrap': True})
values = ['1', '2', '3']
# Set an explicit row height for the wrapped text, if required.
#worksheet.set_row(1, 45)
worksheet.write(1, 1, '\n'.join(values), wrap_format)
workbook.close()
输出:
注意,当您在像这样的单元格中包装文本时,Excel通常会自动调整行高以进行补偿,除非您已手动设置行高。我在示例中添加了一个注释掉的行,以显示如何明确设置行高。
P.S。 <{1}}并非必需。
答案 1 :(得分:0)
可能是因为EOF字符可能是\r
,\r\f
或\r\n
:
sheet.write(1, 11, '\r\n'.join(values), style2)
这取决于系统和用于可视化文件的工具。
答案 2 :(得分:0)
根据这个基本的xlsxwriter tutorial,您必须提供每个值的坐标,而不是包含不同值的迭代。
所以,而不是
sheet.write(1, 11, '\n'.join(values), style2)
您应该考虑以下内容:
for offset, value in enumerate(values):
sheet.write(1 + offset, 11, value, style2)