将列表中的项目添加到由新行分隔的单元格
Adding items from list to a cell separated by new line
我有一个包含一些值的列表,例如。 values = ['1', '2', '3']
。
我尝试将它们放入一个单元格中,但每个值都在新行中,所以它应该看起来像:
1
2
3
在一个牢房里。
我正在尝试这样做:
sheet.write(1, 11, '\n'.join(values), style2)
但它似乎不起作用,因为项目是在一行中添加的,所以它看起来像:
123
可能是因为EOF字符,可以预期是\r
,或者\r\f
,或者\r\n
:
sheet.write(1, 11, '\r\n'.join(values), style2)
这取决于系统,以及您用来可视化文件的工具。
根据这个基本 xlsxwriter tutorial,您必须提供每个值的坐标,而不是包含不同值的 iterable。
所以,而不是
sheet.write(1, 11, '\n'.join(values), style2)
你应该考虑这样的事情:
for offset, value in enumerate(values):
sheet.write(1 + offset, 11, value, style2)
如果您还在单元格格式中指定 text_wrap
,则它应该可以在字符串中使用 \n
换行符(请参阅 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。 \r
不是必需的。
我有一个包含一些值的列表,例如。 values = ['1', '2', '3']
。
我尝试将它们放入一个单元格中,但每个值都在新行中,所以它应该看起来像:
1
2
3
在一个牢房里。
我正在尝试这样做:
sheet.write(1, 11, '\n'.join(values), style2)
但它似乎不起作用,因为项目是在一行中添加的,所以它看起来像:
123
可能是因为EOF字符,可以预期是\r
,或者\r\f
,或者\r\n
:
sheet.write(1, 11, '\r\n'.join(values), style2)
这取决于系统,以及您用来可视化文件的工具。
根据这个基本 xlsxwriter tutorial,您必须提供每个值的坐标,而不是包含不同值的 iterable。
所以,而不是
sheet.write(1, 11, '\n'.join(values), style2)
你应该考虑这样的事情:
for offset, value in enumerate(values):
sheet.write(1 + offset, 11, value, style2)
如果您还在单元格格式中指定 text_wrap
,则它应该可以在字符串中使用 \n
换行符(请参阅 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。 \r
不是必需的。