탭으로 구분 된 150 개의 .xls 및 .xlsx 파일을 탭으로 구분해야합니다. 자동화 도구를 사용해 보았지만 한 번에 하나씩 만 할 수있었습니다. 개별적으로 개봉하는 것보다 확실히 빠릅니다. 스크립팅 지식이 거의 없으므로 가능한 한 쉽게이 작업을 수행 할 수있는 방법을 고맙게 생각합니다.Mass .xls 및 .xlsx를 Mac에서 .txt (탭 구분)로 변환
답변
여기에 파이썬을 사용할 준비가되어 있다면 Excel 스프레드 시트를 CSV 파일로 변환하는 스크립트를 작성했습니다. 이 코드는 Pastebin에서 사용할 수 있습니다.
당신은 다음 줄을 변경해야합니다 :
writer = csv.writer(fileout)
에 :
writer = csv.writer(fileout, delimiter="\t")
가 구분 표준 쉼표가 아니라 구분 된 출력 파일 탭을 확인합니다.
이 스크립트는 한 번에 하나씩 파일을 선택하라는 메시지를 표시하지만 대화 상자에서 선택할 수는 있지만 주어진 디렉토리 트리에서 모든 Excel 파일을 가져 오거나 이름 주어진 패턴과 일치한다.
먼저 개별 파일로 시도해보고 어떻게 진행되는지 알려면 나머지 작업을 자동화하는 데 도움을 줄 수 있습니다. 받는 사람 절대 경로와 함께 상단에
sys.path.insert(0,os.getenv('py'))
:
#!/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()
당신은을 교체해야합니다 : 여기에 UPDATE
당신이 사용할 수있는 래퍼 스크립트입니다 excel_to_csv 스크립트 또는 시스템의 환경 변수.
재미있는 점은 실제로 파이썬이 어느정도 알고 있다는 것입니다. 죄송 합니다만 어떻게 운영하나요? ~/Desktop/done/excel_to_csv.py : 9 : ImportError : No module xlrd " –
xlrd 라이브러리를 설치해야한다는 점을 잊어 버렸습니다. 여기에서 소스 코드를 선택할 수 있습니다 (https://pypi.python.org/pypi/xlrd/0.9.2). 필자는 Windows/Linux에서만 python을 사용했지만 osx에서는 동일하다고 가정합니다. 패키지의 압축을 풀고 Python 설치를 실행해야합니다.py install – ChrisProsser
을 다운로드 한 후 수퍼 유저로 설치하려면 위의 명령 앞에 Sudo를 추가해야 할 수도 있습니다. – ChrisProsser
컨트롤 통합 문서의 VBA를 사용하여 지정된 디렉터리 또는 통합 문서 목록에서 원본 통합 문서를 반복하고 각각을 열고 변환 된 데이터를 저장 한 다음 각각을 차례로 닫습니다.
Automator 워크 플로우를 사용 가능하게하여 내가 가진 솔루션을 볼 수 있습니까? – Kaydell
Automator를 여러 번 사용하면 "Run AppleScript"라는 Automator 액션을 사용해야합니다. Excel은 AppleEvent를 지원하므로 AppleScript (또는 Python)로 작성된 스크립트가 AppleEvent를 통해 Excel을 제어 할 수 있습니다. 이상적으로 AppleEvents는 GUI 외에도 두 번째 사용자 인터페이스를 제공합니다. – Kaydell
지정된 찾기 항목 가져 오기 -> Excel 통합 문서 열기 -> Excel 통합 문서 저장 (http://automatorworld.com/archives/microsoft-office-automator-actions/, 기본 제공되지 않음) -> Excel 통합 문서 닫기 ------------------------------------- 사용자 지정 "Excel 통합 문서 저장"에는 다음과 같은 드롭 다운이 있습니다. "새로 만들기", "기타"및 "새 변수"옵션을 사용하여 "다른 이름으로 저장"이라고 말합니다. 그 아래에는 기본 Excel 변환 워크 플로에없는 다양한 옵션이 포함 된 "서식"드롭 다운 메뉴가 있습니다. –