能否使用Python XlsxWriter向Excel单元格写入股票数据类型?
关于Python生成Excel预设股票数据类型的解决方案
1 XlsxWriter支持情况说明
当前XlsxWriter官方未开放预设Excel「股票」动态数据类型的相关配置接口,这一类型属于微软365专属的链接式实体数据类型,底层需要绑定额外的实体元数据,不在XlsxWriter现有支持的普通单元格格式、数值/公式写入能力范围内,无法直接通过XlsxWriter实现需求。
2 可行Python实现方案
方案一:使用openpyxl配置链接数据类型(完全匹配手动设置效果)
openpyxl 3.1及以上版本已经支持Excel链接数据类型的写入,可以直接给指定单元格绑定股票类型属性,用户打开文件后效果和手动设置完全一致。
示例代码如下:
from openpyxl import Workbook from openpyxl.cell.rich_text import LinkedDataType wb = Workbook() ws = wb.active # 写入目标股票代码,例:阿里巴巴BABA、微软MSFT ws["A1"] = "MSFT" # 配置单元格为股票数据类型 stock_link = LinkedDataType(type="Stock", provider="Microsoft") ws["A1"].linked_data_type = stock_link wb.save("stock_file.xlsx")
注意:该功能仅支持微软365/2021及以上版本的Excel,低版本Excel打开无法识别股票类型。
方案二:写入STOCKHISTORY函数(可兼容XlsxWriter,无需换库)
如果不需要点击单元格展示公司全称、市值等附加股票信息,仅需要自动拉取报价数据,可以直接在XlsxWriter中写入Excel原生的STOCKHISTORY函数实现自动拉数,无需切换依赖库。
示例代码如下:
import xlsxwriter wb = xlsxwriter.Workbook("stock_quotes.xlsx") ws = wb.add_worksheet() # 写入股票代码 ws.write("A1", "BABA") # 写入公式自动拉取对应股票的最新收盘价 ws.write_formula("B1", '=STOCKHISTORY(A1, TODAY(), TODAY(), 0, 0, 1)') wb.close()
注意:STOCKHISTORY同样为微软365专属函数,低版本Excel打开无法正常计算。
内容的提问来源于stack exchange,提问作者DPyM
相关产品推荐
相关产品推荐

