2013-07-22 2 views
3

У меня есть около 150 файлов .xls и .xlsx, которые мне нужно преобразовать в разделители с табуляцией. Я попытался использовать автомат, но я смог сделать это только один за другим. Это определенно быстрее, чем открытие каждого из них индивидуально. У меня очень мало навыков написания сценариев, поэтому я был бы признателен за возможность сделать это безболезненно.Массовое преобразование .xls и .xlsx в .txt (вкладка с разделителем) на Mac

+0

Вы сделаете рабочий процесс Automator доступным, чтобы я мог видеть решение, которое у вас есть? – Kaydell

+0

Много раз с помощью Automator необходимо использовать действие Automator под названием «Запуск AppleScript». Excel поддерживает AppleEvents, так что скрипты, написанные на AppleScript (или в Python), могут управлять Excel через AppleEvents. В идеале AppleEvents предоставляют вам дополнительный пользовательский интерфейс в дополнение к графическому интерфейсу. – Kaydell

+0

Получить определенные элементы поиска -> Открыть книги Excel -> Сохранить книгу Excel (загружено http://automatorworld.com/archives/microsoft-office-automator-actions/, НЕ встроено) -> Закрыть книги Excel ------------------------------------- В пользовательской книге «Сохранить книгу Excel» есть раскрывающийся список, который говорит «сохранить как» с опциями «Новый», «Другой» и «Новая переменная». Ниже он имеет выпадающее меню для «Формат», содержащее тонну параметров, которые не имеют рабочий процесс Excel по умолчанию. –

ответ

-2

Если вы были бы готовы использовать 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 или переменную среды в вашей системе.

+1

Самое смешное, что я действительно знаю python. Извините, но как вы его запускаете? на выходе «~/Desktop/done/excel_to_csv.py: 9: ImportError: нет модуля с именем xlrd » –

+0

Извините, забыл упомянуть, что вам нужно будет установить библиотеку xlrd. Вы можете получить исходный код отсюда: https://pypi.python.org/pypi/xlrd/0.9.2. Я использовал python только для Windows/Linux, но я предполагаю, что он одинаков для osx - вам просто нужно распаковать пакет, а затем запустить настройку python.py install после того, как вы скачали – ChrisProsser

+0

Думая об этом, вам, возможно, придется добавить Sudo в переднюю часть вышеприведенной команды для установки в качестве суперпользователя. – ChrisProsser

0

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

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