Python Excel操作模块XlsxWriter之写入url worksheet.write_url()

worksheet.write_url()

write_url(row, col, url[, cell_format[, string[, tip]]])

向工作表单元格写入超链接。

参数:

  • row(int) - 单元格所在的行(索引从0开始计数)。
  • col(int) - 单元格所在的列(索引从0开始计数)。
  • url(string) - 超链接url。
  • cell_format(Format) - 可选的格式对象。默认为Excel的超链接样式。
  • string(string) - 可选的超链接显示字符串。
  • tip(string) - 可选的提示信息。

write_url()方法用于向工作表单元格写入超链接。url包含两个元素:显示的字符串和不显示的链接。显示的字符串与链接一样除非指定了其他字符串。

行-列和A1风格表示法都支持。

cell_format()参数用于向单元格应用格式。这个参数是可选的。由于没有格式的超链接看起来不像链接,因此默认会使用以下Excel超链接样式。如有需要,你可以像这样访问格式:

worksheet.default_url_format


支持的web风格URI有: http://, https://, ftp://mailto:

worksheet.write_url('A1', 'ftp://www.python.org/')
worksheet.write_url('A2', 'http://www.python.org/')
worksheet.write_url('A3', 'https://www.python.org/')
worksheet.write_url('A4', 'mailto:jmcnamara@cpan.org')


write()方法可以识别所有URI类型, 所以以下是等价的:

worksheet.write_url('A2', 'http://www.python.org/')
worksheet.write    ('A2', 'http://www.python.org/')  # 一样。


你可以使用string参数显示默认替代字符串:

worksheet.write_url('A1', 'http://www.python.org', string='Python home')


注意

如果你希望写入其他单元格的数据,比如数字或公式,你可以调用write_*()来覆盖该单元格:

worksheet.write_url('A1', 'http://www.python.org/')

# 用公式覆盖URL字符串。 该单元格还是一个链接。
worksheet.write_formula('A1', '=1+1', worksheet.default_url_format)


支持两种本地URI:internal: external: 。它们用于指向内部工作表引用或外部工作表引用的超链接:

# 链接至位于当前工作表的单元格。
worksheet.write_url('A1',  'internal:Sheet2!A1')

# 链接至位于其他工作表的单元格。
worksheet.write_url('A2',  'internal:Sheet2!A1:B2')

# 工作表名含有空格的应当用单引号包围。
worksheet.write_url('A3',  "internal:'Sales Data'!A1")

# 链接至其他Excel工作簿。
worksheet.write_url('A4', r'external:c:\temp\foo.xlsx')

# 链接至位于其他工作簿的工作表单元格。
worksheet.write_url('A5', r'external:c:\foo.xlsx#Sheet2!A1')

# 链接至其他工作簿中拥有相对连接的工作表。
worksheet.write_url('A7', r'external:..\foo.xlsx#Sheet2!A1')

# 链接至其他工作簿中拥有网络连接的工作表。
worksheet.write_url('A8', r'external:\\NET\share\foo.xlsx')


工作表引用通常是 Sheet1!A1 样式的。你也可以用标准的Excel表示法连接到工作表选区:Sheet1!A1:B2

使用外部链接时工作簿名和工作表名必须以#号隔开:external:Workbook.xlsx#Sheet1!A1'

你也可以链接至目标工作表中的命名区域。比如说你给工作簿c:\temp\foo.xlsx中的一块选区命名为my_name,你可以像下面这样链接到它:

worksheet.write_url('A14', r'external:c:\temp\foo.xlsx#my_name')


Excel要求名称包含空格或非字母、数字类型字符的工作表用单引号括起来像'Sales Data'!A1

链接至网络文件也是支持的。网络文件通常以两个反斜线开头比如 \\NETWORK\etc 。为了用单引号或双引号括住它,你得转义反斜线,'\\\\NETWORK\\etc' 或者用原始字符串 r'\\NETWORK\etc'

或者,你可以使用正斜线来避免这种符号问题。它们会内部转换为反斜线:

worksheet.write_url('A14', "external:c:/temp/foo.xlsx")
worksheet.write_url('A15', 'external://NETWORK/share/foo.xlsx')


注意

XlsxWriter会将这些字符转义为Excel要求的: \s '' < > \ [ ] ` ^ { },除非URL已经包含了%xx样式的转义。在这种情况下会假定URL已经被用户正确的转义,并会直接传递给Excel。


注意

Excel将超链接和定位(anchor)/位置限制为各255个字符串。


例: 添加超链接

这是个向工作表写入超链接的例子。


###############################################################################
#
# Example of how to use the XlsxWriter module to write hyperlinks
#
# Copyright 2013-2017, John McNamara, jmcnamara@cpan.org
#
import xlsxwriter

# 创建一个新工作簿并添加一个工作表。
workbook = xlsxwriter.Workbook('hyperlink.xlsx')
worksheet = workbook.add_worksheet('Hyperlinks')

# 为第一列设置格式
worksheet.set_column('A:A', 30)

# 添加一个替代文本格式。
red_format = workbook.add_format({
    'font_color': 'red',
    'bold':       1,
    'underline':  1,
    'font_size':  12,
})

# 写入一些超链接
worksheet.write_url('A1', 'http://www.python.org/')  # 隐式格式
worksheet.write_url('A3', 'http://www.python.org/', string='Python Home')
worksheet.write_url('A5', 'http://www.python.org/', tip='Click here')
worksheet.write_url('A7', 'http://www.python.org/', red_format)
worksheet.write_url('A9', 'mailto:jmcnamara@cpan.org', string='Mail me')

# 写入一个非超链接的URL
worksheet.write_string('A11', 'http://www.python.org/')

workbook.close()

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值