2012-10-24 4 views
0

Google 문서에서 내 보낸 .xlsx 파일을 구문 분석하려고합니다. 지금은 온라인으로 접속하려하지 않고 수동으로 다운로드하고 응용 프로그램 내부로 복사하고 있습니다. 내가 파일을 변경하고 가장 간단한로드하려고as3xls> 항상 시트 수 0

var contentBA:ByteArray = new ByteArray(); 
var fileToLoad:File = File.applicationDirectory.resolvePath("textLabels.xlsx");   
var stream:FileStream = new FileStream(); 
stream.open(fileToLoad, FileMode.READ); 
stream.readBytes (contentBA, 0, contentBA.length); 
var xls:ExcelFile = new ExcelFile(); 
xls.loadFromByteArray(contentBA); 
trace ("N SHEETS ", xls.sheets.length); 

하지만 시트의 수는 항상 0이다 : 나는 the tutorial 온라인으로 제공되며,이 코드입니다 읽었습니다

지금은이 탁월하다. 그러나 0을 계속 말하고있다.

".xlsx"확장자의 문제인가? 내가 놓친 게 있니?

답변

1

AS3XLS는 이전 파일 형식 BIFF Office 97 스타일 문서 용으로 작성되었습니다. 내가 AdvancedDataGrid에 대한 내 작업을 위해 XLSX 익스포터를 작성했지만 독점적 인 작업이므로 불행히도 코드를 공유 할 수 없습니다. 그러나 나는 너에게 어떤 방향을 제시 할 수있다. BIFF 형식은 셀 또는 수식의 형식을 인코딩하는 것과 같은 특수한 코드를 사용했습니다. 바이너리 형식은 겉으로는 파일 크기를 줄이려는 의도였습니다 (아마도 난독 화 형식 일 수 있습니다). XLSX는 개방형 XML 접근법을 대신 사용하여 BIFF 파일을 만드는 작업이 복잡해졌으며 Microsoft에서 Open XML 팀의 사양을 발표하기 전에이를 리버스 엔지니어링하여 새로운 XML 형식을 문서화했습니다. x 확장자로 끝나는 모든 새 오피스 파일은 아카이브 (zip 파일과 마찬가지로 모든 아카이브 도구로 열 수 있음)와 시트를 정의하는 일련의 XML 파일이 들어 있습니다. 기본적으로 샘플 시트를 가져 와서 (엑셀을 열면 새로운 워크 북을 저장했다) XML 파일에 각각 해당하는 AS3 클래스를 작성하고 각 인터페이스에 getXMLString() 메소드가 있어야한다고했다.) 그런 다음 모든 객체를 만들고 컨테이너 패턴/순회를 사용하여 필요한 모든 XML 파일을 작성하고 함께 패키지하기 위해 nochump AS3 zip 라이브러리를 사용하는 래퍼를 작성했습니다.

XLSX 또는 DOCX 또는 whateverx 파일을 검사하기위한 유용한 도구는 여기에서 찾을 수 있습니다 : http://openxmldeveloper.org/discussions/development_tools/f/27/p/1494/7453.aspx

일반적으로 위의 사이트 도움이되었다 : 당신이 여기 하나에 맥 토론 경우 http://www.microsoft.com/en-us/download/details.aspx?id=5124

http://openxmldeveloper.org/

나타내는 문서 (최소) 예 http://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%203%20-%20Primer.pdf

012 3,516,

난 그냥 파일 나는 간단한 Excel에서 프로그래밍 할 수 있기를 원하는 변화를 시도하여 해당 새로운 기능하지 않고 다른 대조를 비교 걸쳐 테이블 또는 셀 등의 고급 기능에 대한 http://nochump.com/blog/archives/15

기본적으로 NoChump의 AS3 우편 라이브러리 위에 링크 된 첫 번째 도구는 적절한 AS3 클래스 (변경된 XML 파일에 해당하는 클래스)에서 변경 사항을 구현했습니다.

수업 구성을 제대로하기까지는 약 2 주가 걸리지 만 절대적으로 성취 할 수 있습니다.

+0

자세한 답변을 주셔서 감사합니다! 불행히도 나는 서두를 것이다. 나는 매우 바보스럽고 반복적 인 작업 (gdocs에서 시작하는 XML과 다른 파일 채우기)을 수행하도록 요청 받았다. 나는 멍청한 작품이 싫어서 마이크로 에어 앱을 구축하여 더 괴상하고 안전하고 재미있는 방법으로 이것을 할 수 있는지 궁금해했다. –

+0

그러나 나는 그것을 할 수있는 일을 가지고있다 .... –

+0

이 경우 데이터를 스크래핑하는 것은 실제로 나쁘지 않을 것입니다. nochump zip 라이브러리를 사용하면 코드에서 xlsx 파일을 압축하여 열 수 있으며 항목을 단계별로 실행하여 sheet1.xml과 같은 파일을 찾을 수 있어야합니다. xml 등과 XML이 E4X를 사용하여 가치를 얻는 데 관심이있는 특정 노드를 찾을 수 있기 때문입니다. – shaunhusain

0

ExcelFile은 맞춤 라이브러리의 클래스이며 Excel 2002-2003을 지원합니다. 어떤 Excel 버전을 사용합니까?

+0

Google 문서 도구 문서를 내보내고 있습니다. "다운로드는 탁월합니다"라고되어 있지만 형식은 xlsx입니다. 2002-2003보다 최신 버전이라고 생각합니다.그러나 Numbers (Mac 용 Excel)로 새 문서를 만들고 xls로 저장하면 파일을 읽지 않습니다. –

+0

글쎄, 확장 기능 만이 갈 길이라고 생각하지 않습니다. Excel에서 가져온 파일의 다른 스타일 형식. 버전이 문제가 아닌지 확인하는 유일한 방법은 Excel 2002-2003에서 만든 파일로 테스트하는 것입니다. 인터넷에서 파일을 찾을 수있을 것이라고 확신합니다.하지만 다시 말하면, 시간, 난 정말 Excel에서 전문가가 아니야 ... :) – GeorgeCross