고객의 데이터를 가져 와서 제품으로 파싱하는 프로세스를 진행하고 있습니다. 이 경우, xlsx 파일. 유감스럽게도 Windows 용 Excel 대신 Mac 용 Excel에서 작성된 xlsx 파일을 읽도록 코드화되어 있으며 고객이 Windows를 사용하고 있으므로이 제품을 읽는 데 문제가 있습니다.
나는 여전히 이것을 파고 들었지만, MIME 유형과 xlsx 파일에 보관 된 XML 데이터의 구성과 관련된 차이점을 말할 수있는 한 :
다음은 스크린 샷입니다. 동일한 데이터가있는 두 개의 파일 중 하나는 Mac에서 로컬로 저장되고 다른 하나는 Windows 컴퓨터에서 저장됩니다.
결과는 다음과 같습니다. file
명령:
user@MBP:~/Desktop/win_vs_mac$ file *
mac_origin.xlsx: Microsoft Excel 2007+
win_origin.xlsx: Zip archive data, at least v2.0 to extract
user@MBP:~/Desktop/win_vs_mac$ file -I *
mac_origin.xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=binary
win_origin.xlsx: application/zip; charset=binary
보관을 취소 할 때 제공하는 내용은 다음과 같습니다 (이러한 결과는 여러 번의 시도에서 일관됨).
user@MBP:~/Desktop/win_vs_mac$ unzip mac_origin.xlsx
Archive: mac_origin.xlsx
inflating: [Content_Types].xml
inflating: _rels/.rels
inflating: xl/_rels/workbook.xml.rels
inflating: xl/workbook.xml
inflating: xl/sharedStrings.xml
inflating: xl/theme/theme1.xml
inflating: xl/styles.xml
inflating: xl/worksheets/sheet1.xml
inflating: docProps/core.xml
inflating: docProps/app.xml
user@MBP:~/Desktop/win_vs_mac$ unzip win_origin.xlsx
Archive: win_origin.xlsx
warning: win_origin.xlsx appears to use backslashes as path separators
inflating: _rels/.rels
inflating: [Content_Types].xml
inflating: xl/workbook.xml
inflating: xl/sharedStrings.xml
inflating: xl/styles.xml
inflating: xl/worksheets/sheet0.xml
inflating: xl/_rels/workbook.xml.rels
인터넷 검색을 한 후, 이 실 파일이 추가되는 순서가 차이를 만들 수 있다고 생각하게 만듭니다.
내 질문은 수동으로 파일을 열고 다시 저장하지 않고 "Win 기반"Excel 파일을 프로그래밍 방식으로 "Mac 기반"Excel 파일로 변환하는 방법이 있습니까? 이상적으로 터미널에? 기존 도구를 찾을 수 없습니다. 중개인 sysadmin / ops 유형으로서 저는 macOS에서 이들을 생성하도록 고객에게 요청할 수있는 입장이 아니며 Dev에게 이들을 읽는 제품의 일부를 다시 빌드하도록 요청할 위치에 있지 않습니다. 나는 필요한 것 이것을 자동화하거나 나를 미치게 만들 것입니다.
제공 할 수있는 도움에 감사드립니다.
docProps/
Windows 사본에 존재하지 않는 파일.