使用 =HYPERLINK 和 XlsxWriter 包装文本
Wrapping text with =HYPERLINK and XlsxWriter
我正在使用 Excel 的 =HYPERLINK 函数在 XlsxWriter 中编写超链接。我没有使用 write_url()
,因为我的选项卡名称以数字开头,而且我还需要显示 "friendly" 名称而不是超链接。 (显示友好名称似乎不适用于 write_url()
的 'internal:...'
关键字。)超链接工作正常但由于某些原因 Excel 没有包装超链接,即使我有将 'text_wrap'
设置为 True
。正如您在顶部图片中看到的那样,Excel 显示设置了环绕文本(它是灰色的)但文本没有环绕。如果我单击 Wrap Text 取消select它,然后再次单击它重新select它,它确实会换行文本,如底部图片所示。
我正在使用 xlsxwriter 1.0.2 和 Excel 2016。
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write('A1', '=HYPERLINK("#Sheet1!A1", "A really long name here that does not wrap")', wrap)
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
您可以使用 worksheet.write_url()
方法,然后使用 worksheet.write()
添加格式和文本,同时保留超链接。
下面的代码生成换行文本。
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write_url('A1', 'internal:Sheet1!A1')
ws.write('A1', "A really long name here that does not wrap", wrap)
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
预期输出:
Showing a friendly name does not seem to work with write_url()'s 'internal:...' keyword.
确实如此:
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write_url('A1', 'internal:Sheet1!A1', wrap,
"A really long name here that does not wrap")
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
输出:
我正在使用 Excel 的 =HYPERLINK 函数在 XlsxWriter 中编写超链接。我没有使用 write_url()
,因为我的选项卡名称以数字开头,而且我还需要显示 "friendly" 名称而不是超链接。 (显示友好名称似乎不适用于 write_url()
的 'internal:...'
关键字。)超链接工作正常但由于某些原因 Excel 没有包装超链接,即使我有将 'text_wrap'
设置为 True
。正如您在顶部图片中看到的那样,Excel 显示设置了环绕文本(它是灰色的)但文本没有环绕。如果我单击 Wrap Text 取消select它,然后再次单击它重新select它,它确实会换行文本,如底部图片所示。
我正在使用 xlsxwriter 1.0.2 和 Excel 2016。
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write('A1', '=HYPERLINK("#Sheet1!A1", "A really long name here that does not wrap")', wrap)
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
您可以使用 worksheet.write_url()
方法,然后使用 worksheet.write()
添加格式和文本,同时保留超链接。
下面的代码生成换行文本。
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write_url('A1', 'internal:Sheet1!A1')
ws.write('A1', "A really long name here that does not wrap", wrap)
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
预期输出:
Showing a friendly name does not seem to work with write_url()'s 'internal:...' keyword.
确实如此:
import xlsxwriter
wb = xlsxwriter.Workbook('Wrap.xlsx')
ws = wb.add_worksheet('Test1')
wrap = wb.add_format({'text_wrap': True})
ws.write_url('A1', 'internal:Sheet1!A1', wrap,
"A really long name here that does not wrap")
ws.write('B1', 'Bye')
wb.add_worksheet('Sheet1')
wb.close()
输出: