Python:Excel正在被实时输入股票价格.如何将每 10 分钟的价格附加到 csv



这是我的python脚本:

from xlrd import open_workbook
from xlrd import xldate_as_tuple
book = open_workbook('C:/Users/.......Constantquotes.xlsx')
sheet0 = book.sheet_by_index(0)  #Initializes the first row
print sheet0.row(0)              #Prints the first row
date_value = xldate_as_tuple(sheet0.cell(0,1).value,book.datemode)
print date_value                 #Prints the date cell

#  Next step: make the a list for the stock price
#  Next step: append the list to a csv

所以我正在将价格放入excel中,它们每秒都会更新。我想做的是让 python 脚本每十分钟读取一次 excel 表(我将使用 cronjob 激活 python 脚本),然后将最新价格附加到仅包含该股票价格的 csv 文件中。问题是,当我运行python脚本时,它给了我价格和上次保存excel文件的日期,而不是当前价格。我试图设置选项-->保存-->保存-->保存自动恢复信息-->1分钟,但这对我没有帮助。因此,为了重新表述这个问题,我如何使每次 xlrd 读取.xls文件(以便 python 脚本可以提取当前价格和日期)时,我都会得到当前价格和日期,而不是上次保存 .xlxs 文件时的价格和日期?

理想情况下,我希望能够离开计算机几天,然后回到填充.csv

或者也许有更好的解决方案来填充.csv?

我认为这是使用 VBA 更好地处理的任务之一。Python 无法访问数据,因为它尚未保存 - 它在内存中,但您告诉 python 从磁盘读取。在我看来,你有两个合理的选择之一。

  1. 让 VBA 宏填充 csv。
  2. 让VBA宏定期保存xls。

嗯,这应该在Excel中实现,而不是在Python中实现。在 VBA 中,您可以使用以下内容:

  1. 在VBA代码的开头。

    Application.DisplayAlerts = False

  2. 当您要保存工作簿时。

    ThisWorkbook.Save

使用步骤 1 的原因是确保在您离开计算机时,在保存工作簿之前不会要求手动确认。我建议不要在每次价格更新时保存工作簿。也许您可以使用计时器定期保存它。

创建 CSV?

使用小型VBA计时器脚本在同一工作表中复制股票价格,只需每1分钟将行号增加10,您的限制是excel最大行号。如果您想要一个文件,我正在这样做或写入文件。

Sub timer()
  Application.OnTime Now() + TimeValue("00:10:00"), "main" 'repeat main every 10minute
End Sub
'------------------------------------------------------
Sub main() 
    Cells(i+1, 1) = price
     i = i + 1
     timer
End Sub

相关内容

  • 没有找到相关文章

最新更新