Макро подход:
Я не могу ответить на этот вопрос точно, но как насчет использования макропрограммы, поэтому единственное, что вам нужно сделать, это открыть файлы один за другим и запустить макрос? Это может быть выполнимо, если коллекция не слишком большая, если нет, вам, вероятно, придется придумать программирование нестандартного решения ...
Программирование специального автоматического решения:
Основываясь на ответе А. Сканелли, вы можете взять ваш любимый язык .NET и сделать (примеры C #):
- Рекурсивно перечислять подкаталоги .
- Перечислите каждый файл во всех найденных каталогах, отфильтруйте по расширению Excel.
- Автоматизируйте Microsoft Excel следующим образом: http://support.microsoft.com/kb/302084
- И заменить текст следующим образом: Как я могу заменить текст в электронной таблице Excel?
Псевдокод:
openExcel // Fills the list recursively with aboslute paths of the subfolders of path. enumerateFolder(list, path) // Enumerate paths. foreach(path in list) { // Enumerate files foreach(file in path) { openFileInExcel replaceFileContents closeFileInExcel } } closeExcel
Объяснение:
Просто передайте путь к родительскому каталогу и ссылку на список, когда вы вызываете их рекурсивно. Это позволяет получить список папок, файлы которых можно перечислить в двойном цикле.
Оставьте Excel открытым в течение всего алгоритма, просто «открывайте, заменяйте и закрывайте» во внутреннем цикле.