Предположим, у меня есть программа, которая периодически добавляет информацию в файл .CSV. Есть ли способ записать файл, пока он уже открыт в Excel? Очевидно, изменения не будут заметны до тех пор, пока файл не будет снова открыт в Excel, но, поскольку он стоит прямо сейчас, я ломаю IOException и просто запускаю новый CSV-файл, если текущий уже открыт.Запись в файл, который открыт в Excel
ответ
Excel, кажется, открывает файл в эксклюзивном режиме, поэтому единственный способ, о котором я могу думать, - записать ваши изменения во временный файл, а затем использовать FileSystemWatcher
, чтобы увидеть, когда файл закрыт, и перезаписать файл.
Не очень хорошая идея, так как вы можете потерять данные. Вся причина excel блокирует файл, так что вы случайно не перезаписываете изменения, сделанные в excel.
Точно. Я НЕ ПРЕДУСМОТРЕТСЯ об использовании методов защиты от Excel, но мы с Джоном предложили способ - если нужно. – Dutchie432
Обход проблемы: https://superuser.com/questions/491020/how-do-i-prevent-excel-from-locking-files-by-default –
Похоже, что файл заблокирован. Я сомневаюсь, что вы сможете писать в этот файл, если он открыт в другом процессе.
Как бывший (и тип текущего) VB-программиста, я могу сказать вам, что Джаред прав, - нет никакого способа сделать это напрямую. Сначала вы можете скопировать файл, внести изменения, а затем попытаться сохранить файл обратно в исходное местоположение, пока заблокированный файл не станет бесплатным. Вы должны иметь возможность копировать этот файл, даже если он заблокирован.
Как использовать объектную модель Excel и автоматизировать добавление данных в открытую электронную таблицу? Вероятно, вам нужно будет попросить пользователя как-то сообщить им, что происходит.
- 1. Хотите прочитать файл Excel, который уже открыт в MS-Excel
- 2. Запись в файл Excel, пока он открыт другим пользователем
- 3. Прочтите файл, который уже открыт в Word
- 4. Как читать файл Microsoft Excel, который уже открыт
- 5. Заблокированный лист excel, который не открыт
- 6. Запись потока в файл excel
- 7. C# Запись в файл excel
- 8. Запись в файл с QFile сбой, без кода ошибки, когда он уже открыт в Excel
- 9. Запись в защищенный файл Excel в C#
- 10. Запись данных в файл excel в цикле
- 11. Matlab xlsread, когда файл Excel открыт
- 12. Проверьте, что файл excel открыт другим пользователем
- 13. Powerbuilder: как найти файл excel уже открыт
- 14. Python и Excel - проверьте, открыт ли файл
- 15. Проверьте, открыт ли файл, который не заблокирован
- 16. Предложить файл для пользователя, который будет открыт
- 17. inode - переместить файл, который уже открыт
- 18. vba access - проверить, открыт ли файл excel
- 19. Excel Импорт в DataSet Перерывы Когда файл открыт
- 20. Библиотека или код Python для записи в файл Excel, который уже открыт
- 21. Запись метки данных SAS в файл Excel
- 22. Запись строк DataReader в файл Excel
- 23. Уверен ли файл .OpenFile(), который уже открыт?
- 24. Запись аргументов скрипта, переданных в файл Excel
- 25. R: Запись реактивного выхода в файл excel?
- 26. Как открыть файл, который уже открыт с разрешениями файлового архива
- 27. Запись в файл Excel в Labwindows, когда Excel не установлен
- 28. Запись в файл Excel с ошибками VB6
- 29. Запись данных в файл excel с C#
- 30. Запись в файл excel - Анализ производительности
Это не касается вопроса программирования, но у вас достаточно контроля над средой, чтобы пометить файл только для чтения в NTFS, так что, когда кто-то открывает его, файл не блокируется? Это будет работать, только если C# может открыть файл только для чтения в режиме записи, конечно. –