2012-05-29 3 views
2

매일 Excel에서 내 사이트의 일부 가격표를 자동으로 업데이트해야합니다. PHPExcel을 사용했지만 Linux 호스트 서버에서는 사용할 수없는 40000 행과 11 열만있는 파일을 생성하는 데 많은 메모리 (약 900Mb)가 필요합니다. 모든 Google 결과는 PHPExcel만을 가리 킵니다. 같은 일을 할 수있는 커맨드 라인 유틸리티가 있는지 궁금하지만, 메모리를 적게 차지하므로 Linux 서버에서 cron을 사용하여 실행할 수 있습니까? 내 Excel 파일에 형식 및 수식을 사용해야하므로 CSV 및 HTML이 옵션이 아닙니다.Linux에서 명령 줄에서 xls 파일을 생성하는 방법은 무엇입니까?

물론 Windows Server 컴퓨터에서 MySQL에 연결할 수 있으며 실제 Excel에서 Excel 파일을 생성 한 다음 서버에 업로드 할 수도 있습니다. 그러나이 옵션은 저에게 상당히 해커처럼 보입니다.

추가 : 지금 큰 파일에 적은 자원을 소모하고 쉽게 사용할 수있는 하나를 선택, 펄, 파이썬과 자바 모듈 사이에 결정하고 있습니다; 이 주제에 대한 모든 의견은 환영합니다. 다른 해결책도 허용됩니다.

답변

0

나를위한 가장 쉬운 방법은 python-excel 라이브러리를 사용하는 것이 었습니다. 파이썬에 대해서는 전혀 쓴 적이 없지만, PHPExcel보다 훨씬 빠른 속도로 작동하고 (실제로 가장 큰 파일에서 약 300 Mb, 900 Mb에 비해 약 300 Mb) PHP). 그러나 비슷한 문제의 해결책을 찾고 있다면 다른 답변에서 제공되는 도구가 필요합니다.

1

페이지의 복잡성에 따라 xlsx 파일을 손쉽게 빌드 할 수 있습니다. xlsx 사양은 실제로 복잡하지만 아주 간단한 표를 만드는 예제를 보았습니다.

아마도 link 일 수 있습니다.

1

PERL 및 John McNamara의 모듈 인 Spreadsheet :: WriteExcel을 사용하여 모든 종류의 훌륭한 스프레드 시트를 생성하는 데 정말 좋은 결과를 얻었습니다. 그러나 프로그래밍이 필요합니다.

+0

스프레드 시트가 컸습니까? 생성하는 데 많은 시간과 메모리가 필요 했습니까? –

+1

예, 일부 스프레드 시트에는 수십 개의 탭이 있고 수만 행이 있었으며 크기는 수 메가 바이트였습니다. 메모리 사용량은 최종 스프레드 시트 파일의 크기와 같으며 생성 시간은 데이터를 검색하는 데 사용 된 SQL 쿼리에 의해 결정되었습니다. Linux 또는 Windows의 명령 줄에서 PERL 시스템이 설치된 상태에서 실행 가능한 매우 간단한 거래입니다. –

1

Java에서 ResultSet에서 Templater으로 빌드해볼 수 있습니다. 우리는 더 많은 Java 예제를 사용하여 사이트를 업데이트하는 중입니다. 그러나 코드는 이와 같이 보입니다.

ITemplaterDocument doc = Configuration.Factory.Open (file); doc.process (resultSet); doc.flush();

+0

매우 사용하기 쉽고, 성능에 대해 확인해야합니다. 감사! –

2

당신은 자바와 Apache POI

그것은 (내 자신의 경험을 바탕으로) 창에 MS 오피스 Interop 어셈블리 후 더 나은 좋은 성능을 가지고 사용을 고려해야합니다.

또한 큰 사용자 커뮤니티가 있습니다.

+0

감사합니다. 그 옵션을 고려해 보겠습니다! –

관련 문제