2012-06-01 6 views
1

Я пытаюсь написать программу python для добавления котировок живых акций из файла csv в файл excel (который уже открыт) с использованием xlrd и xlwt.xlrd - добавить данные в уже открытую книгу

Задача приведена ниже.

Из приложения моего биржевого брокера постоянно обновляется файл csv на моем жестком диске. Я хочу написать программу, которая при запуске добавит новые данные из файла csv в файл excel, который остается открытым (интересно, можно ли читать & написать открытый файл).

Я хочу сохранить файл открытым, потому что в нем будут иметь биржевые диаграммы.

Возможно ли это? Если да, то как?

ответ

1

Не напрямую. xlutils может использовать xlrd и xlwt для копирования электронной таблицы, а добавление к листу «для записи» является простым. Я не думаю, что чтение открытой таблицы - проблема, но xlwt не будет писать в открытую книгу/лист.

Вы можете написать макрос Excel VBA для рисования графиков. В принципе, я думаю, что макрос из командной книги может закрыть вашу книгу запаса, вызвать ваш код на питоне для копирования и обновления, открыть новую электронную таблицу и, возможно, запустить макрос, чтобы повторно рисовать графики.

Другим подходом является использование matplotlib для графиков. Я думаю, что цикл сна может просыпаться каждые n секунд, захватывать новые данные csv, добавлять его к вашим «большим» данным csv и повторно рисовать график. Принимая этот подход, вы держите вас на питоне и должны сделать вещи намного проще, imho. Раскрытие информации: мой Python лучше, чем мой VBA.

+0

Поскольку книга должна обновляться каждую минуту, я бы избегал закрытия и повторного открытия книги каждый раз. Что касается макроса VBA: - График рисования в excel похож на захват конфеты у малыша. В мастере диаграмм я выбираю большой диапазон ячеек для данных (где он будет заполняться в реальном времени). Что касается matplotlib: - Поскольку хорошие варианты диаграммы уже доступны в Excel и open-office, зачем изобретать колесо с помощью matplotlib? – Vineet

+0

Любые входы при использовании опции excel для получения внешних данных? – Vineet

+0

Если открытая книга не может быть записана, возможно ли вставить рабочий лист в уже открытую книгу? В этом случае я бы сохранил диаграмму на одном листе и данные на другом листе. Для обновления удалите лист данных и вставьте новый лист с тем же именем. На этом листе будут обновлены данные. – Vineet

Смежные вопросы