У меня есть около 150 файлов .xls и .xlsx, которые мне нужно преобразовать в разделители с табуляцией. Я попытался использовать автомат, но я смог сделать это только один за другим. Это определенно быстрее, чем открытие каждого из них индивидуально. У меня очень мало навыков написания сценариев, поэтому я был бы признателен за возможность сделать это безболезненно.Массовое преобразование .xls и .xlsx в .txt (вкладка с разделителем) на Mac
ответ
Если вы были бы готовы использовать Python для этого, я написал сценарий, который преобразует электронные таблицы Excel в файлы csv. Код доступен в Pastebin.
Вам просто нужно будет изменить следующую строку:
writer = csv.writer(fileout)
к:
writer = csv.writer(fileout, delimiter="\t")
сделать закладку выходного файла с разделителями, а не стандартные запятых.
В этом контексте этот скрипт предлагает вам файлы по одному (позволяет вам выбирать из диалога), но его можно легко адаптировать для получения всех файлов Excel в данном дереве каталогов или где имена соответствуют заданному шаблону.
Если вы сначала попробуете с отдельным файлом и дайте мне знать, как вы справляетесь, я могу помочь с изменениями, чтобы автоматизировать остальные, если хотите.
UPDATE
Вот скрипт обертку можно использовать:
#!/usr/bin/python
import os, sys, traceback
sys.path.insert(0,os.getenv('py'))
import excel_to_csv
def main():
# drop out if no arg for excel dir
if len(sys.argv) < 2:
print 'Usage: Python xl_csv_wrapper <path_to_excel_files>'
sys.exit(1)
else:
xl_path = sys.argv[1]
xl_files = os.listdir(xl_path)
valid_ext = ['.xls', '.xlsx', '.xlsm']
# loop through files in path
for f in xl_files:
f_name, ext = os.path.splitext(f)
if ext.lower() in valid_ext:
try:
print 'arg1:', os.path.join(xl_path,f)
print 'arg2:', os.path.join(xl_path,f_name+'.csv')
excel_to_csv.xl_to_csv(os.path.join(xl_path,f),
os.path.join(xl_path,f_name+'.csv'))
except:
print '** Failed to convert file:', f, '**'
exc_type, exc_value, exc_traceback = sys.exc_info()
lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
for line in lines:
print '!!', line
else:
print 'Sucessfully conveted', f, 'to .csv'
if __name__ == '__main__':
main()
Вам нужно будет заменить:
sys.path.insert(0,os.getenv('py'))
На вершине абсолютный путь к excel_to_csv или переменную среды в вашей системе.
Самое смешное, что я действительно знаю python. Извините, но как вы его запускаете? на выходе «~/Desktop/done/excel_to_csv.py: 9: ImportError: нет модуля с именем xlrd » –
Извините, забыл упомянуть, что вам нужно будет установить библиотеку xlrd. Вы можете получить исходный код отсюда: https://pypi.python.org/pypi/xlrd/0.9.2. Я использовал python только для Windows/Linux, но я предполагаю, что он одинаков для osx - вам просто нужно распаковать пакет, а затем запустить настройку python.py install после того, как вы скачали – ChrisProsser
Думая об этом, вам, возможно, придется добавить Sudo в переднюю часть вышеприведенной команды для установки в качестве суперпользователя. – ChrisProsser
Используйте VBA в рабочей книге управления, чтобы прокрутить исходные книги в указанном каталоге или в списке книг, открывая каждый, сохраняя преобразованные данные, а затем закрывая их поочередно.
- 1. Пытается использовать AppleScript для преобразования .xls и .xlsx в .txt (вкладка с разделителями), требуется фиксация
- 2. Замена .xls или .xlsx с .txt
- 3. Преобразование XLS-файла в XLSX в talend
- 4. Преобразование .xls в .txt и наоборот
- 5. Преобразование XLS в XLSX в Java
- 6. Перспектива VBA Преобразование вложений .xls .xlsx к
- 7. Преобразование файла .txt в .xls в java
- 8. Преобразование CSV в XLS с использованием ssconvert с разделителем
- 9. Преобразование xls в xlsx и удаление старого файла
- 10. Преобразование файла txt в файл xls
- 11. Преобразование xlsx файла в xls с использованием NPOI в C#
- 12. Преобразование .xls в формат .xlsx с использованием кода Java
- 13. Как преобразовать файл «.txt» с разделителем табуляции в формат Excel «.xls» с использованием java?
- 14. phpmyadmin: вкладка с разделителем табуляции
- 15. Преобразование csv в xls/xlsx с помощью Apache poi?
- 16. Пакетное преобразование .xls в .xlsx с VBA без открытия книг
- 17. Преобразование xls в xlsx с помощью Apple Script
- 18. Конвертировать вкладку с разделителем txt в JSON
- 19. Vb6: Разделительная вкладка с разделителем
- 20. Манипулирование Excel xls и xlsx в .NET
- 21. Открыть xls и xlsx с Apache POI
- 22. PHP - преобразование файла с разделителем TXT в CSV
- 23. Преобразование из Excel xlsx в xls в Java
- 24. Чтение данных .xlsx и .xls в codeigniter
- 25. Преобразование файлов XLS/XLSX в папку в CSV
- 26. Использование макросов Excel в XLS и XLSX
- 27. Преобразование (xls, xlsx) в CSV перед загрузкой через PHP
- 28. PHP Преобразование файла Excel из «.xls» в «.xlsx»
- 29. Преобразование .txt файл с вкладки Разделения в XLSX через Python3
- 30. Преобразование очень большого файла XLSX в TSV на Mac
Вы сделаете рабочий процесс Automator доступным, чтобы я мог видеть решение, которое у вас есть? – Kaydell
Много раз с помощью Automator необходимо использовать действие Automator под названием «Запуск AppleScript». Excel поддерживает AppleEvents, так что скрипты, написанные на AppleScript (или в Python), могут управлять Excel через AppleEvents. В идеале AppleEvents предоставляют вам дополнительный пользовательский интерфейс в дополнение к графическому интерфейсу. – Kaydell
Получить определенные элементы поиска -> Открыть книги Excel -> Сохранить книгу Excel (загружено http://automatorworld.com/archives/microsoft-office-automator-actions/, НЕ встроено) -> Закрыть книги Excel ------------------------------------- В пользовательской книге «Сохранить книгу Excel» есть раскрывающийся список, который говорит «сохранить как» с опциями «Новый», «Другой» и «Новая переменная». Ниже он имеет выпадающее меню для «Формат», содержащее тонну параметров, которые не имеют рабочий процесс Excel по умолчанию. –