1

这是我的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?

4

2 回答 2

0

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

  1. 在 VBA 代码的开头。

    Application.DisplayAlerts = False

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

    ThisWorkbook.Save

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

于 2013-01-25T08:23:05.937 回答
0

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

  1. 让 VBA 宏填充 csv。
  2. 让 VBA 宏定期保存 xls。
于 2013-01-25T01:56:16.900 回答