내 기사“Windows에서 Interop 기능을 사용하여 Microsoft Word 문서를 만드는 방법”이후, 순수한 PHP 구현을 촉구하는 몇 가지 의견이있었습니다. 즉, 범용 PHP 라이브러리를 사용하여 사무실 파일을 조작했습니다.
이 기사에서는 Phpexcel 라이브러리를 사용하여 웹 앱에서 "Export to Excel"기능을 제공하여 사용자가 추가 분석을 위해 데이터를 Excel 2007/2013 파일로 내보낼 수 있도록하는 방법을 볼 수 있습니다. >
참고 : Excel (및 Office) 파일 조작을 제공 할 수있는 몇 가지 PHP 라이브러리가 있습니다. 여기서 사용하는 LIB는 Phpoffice의 서브 세트 인 Phpexcel이라고하며 여기에서 클로닝 할 수 있습니다.
키 테이크 아웃
Phpoffice의 서브 세트 인 Phpexcel은 엑셀 파일의 순수한 PHP 조작을 가능하게하여 인터 로프 및 Windows 종속성의 필요성을 피할 수 있습니다.
튜토리얼은 데이터 프레젠테이션 및 분석을 향상시키기 위해 PHPEXCEL을 사용하여 게임 데이터, 추가 분석 및 차트를 사용하여 Excel 파일을 만드는 것을 보여줍니다.
필요한 설정은 5.2.0 이상의 PHP 버전을 포함하여 특정 PHP 확장을 가능하게하고 PHPExcel 설치에 작곡가를 사용합니다.
PHPEXCEL은 속성 설정, 채우는 워크 시트, 공식 삽입 및 시각적으로 매력적인 차트 생성을 포함한 자세한 Excel 파일 조작을 허용합니다.
최종 출력은 Excel 파일을 다운로드 가능한 형식으로 저장하는 것이 포함되며, PHPEXCEL의 현재 PIE 차트를 Excel 2013에서 효과적으로 처리 할 수 없음에 대한 메모와 함께 차트가 포함되도록합니다.
목표
이 튜토리얼 후에는 다음과 같이받습니다
2013-14 시즌에 내가 좋아하는 NBA 팀-LA Lakers의 게임 정보 (날짜, 팀, 점수, 승리/잃어버린 상태)를 보여주는 시트.
데이터를 Excel 2013 파일로 내보낼 버튼.
이 Excel 파일은 일부 추가 분석 데이터와 PHP 및 Excel에 의해 생성 된 차트로 채워질 것입니다.
시작하겠습니다.
준비
Phpexcel을 사용하려면 5.2.0 이상의 PHP 버전이 있어야합니다. 활성화 할 PHP_ZIP (Office 2007 형식을 운영하는 데 필수적), PHP_XML 및 PHP_GD2 (선택 사항이지만 정확한 열 폭
다음은 작곡가를 통해 라이브러리를 설치하십시오.
물론 우리는 데이터베이스를 가동하고 실행해야합니다. 이 튜토리얼 (Lakers.sql)의 데이터 덤프 가이 기사와 관련된 저장소에 업로드되었습니다. 이 데이터는 간단한 SQL 문으로 검색됩니다.“Lakers에서 선택 *”(8 개의 프리 시즌 및 82 개의 정규 시즌 게임을 포함한 총 90 개의 레코드).
또한이 데모는 Silex를 MVC 프레임 워크로 사용합니다. Twig는 템플릿 엔진으로 사용됩니다. Composer.json 파일에 필요한 종속성이 올바르게 지정되어 있는지 확인하십시오.
인덱스 파일
index.php는 Silex 응용 프로그램의 진입 점입니다. 두 개의 경로가 정의됩니다 :
<span>$app->get('/', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->index($app);
</span><span>});
</span>
<span>$app->post('/export', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->export($app);
</span><span>});</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
Route'/'는 우리의 진입 점이되며 데이터와 "내보내기"버튼을 표시합니다. Route '/Export'는 실제로 Excel로 내보내는 백엔드 처리 프로세스를 수행합니다. 두 기능 모두 사용자 정의 클래스 (Classexcel.php)로 래핑됩니다. 이 기사의 나머지 부분에서는이 파일에 중점을 둘 것입니다. 또는 더 정확하게이 파일에 정의 된 내보내기 기능 및 관련 기능이 Phpexcel 라이브러리를 사용하여 Excel 조작의 몇 가지 중요한 측면에 대해 논의 할 것입니다.
Excel 응용 프로그램 및 메타 데이터
아이콘을 클릭하여 Excel을 시작하면 Excel 응용 프로그램이 시작됩니다. 정상적인 상황에서는 3 (Excel 2013, 1) 워크 시트가있는 통합 문서도 포함됩니다. 워크 시트는 우리와 함께하는 "캔버스"입니다. 이것들은 Excel에서 가장 중요한 두 가지 용어입니다. 다른 중요한 용어에는 다음이 포함될 수 있습니다
엑셀 파일을 인스턴스화하려면 다음을 사용합니다
Excel 응용 프로그램 인스턴스는 일반적으로 물리적 Excel 파일에 매핑됩니다. 우리가 만든 파일을 설명하기위한 자체 메타 데이터가 있습니다. 메타 데이터는 Excel 파일을 "alt-enter"할 때 표시됩니다 (또는 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오) : .
위 대화 상자에 표시된 속성에는 해당 Setxxxx 메소드가 이러한 속성을 설정하는 데 해당하는 Setxxxx 메소드가 있으며 여기서 XXXX는 대화 상자에 나열된 속성 이름과 거의 동일합니다.
메소드 (setxxxx)는 상당히 자기 설명이며 "속성"대화 상자에 맵핑됩니다. 매핑에는 약간의 불일치가 있지만, 우리가 연결을하기에는 너무 어렵지 않습니다 (예 : "저자"는 SetCreator에 매핑됩니다).
.
워크 시트 및 세포 개체군
워크 시트는 아마도 우리가 가장 많이 조작 할 객체 일 것입니다 : 데이터 또는 공식으로 셀을 채우고, 스타일을 적용하고, 데이터 필터링을하고, 차트 삽입 등을 삽입하는 등
워크 시트에 대한 참조를 얻으려면 다음을 사용합니다.
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
통합 문서의 시트는 항상 0- 인덱스입니다. 따라서 첫 번째 (그리고 지금까지 유일한) 시트는 시트 0이됩니다. 이 시트의 기본 이름은 항상 "워크 시트"이며 Settitle 메소드로 변경할 수 있습니다.
해당 제목, 제목, 기타 설명 항목의 경우 SetCellValue 메소드를 사용하여 하나씩 채 웁니다.
구조화 된 데이터의 경우 대부분은 SQL Select 문에서 제공되며 FromArray 메소드를 사용합니다.
FromArray 메소드는 3 개의 매개 변수를 가져옵니다 :
1. 배열 형식의 데이터 소스;
2. 데이터가 null 인 경우 "필러"값;
<span>$ea->getProperties()
</span> <span>->setCreator('Taylor Ren')
</span> <span>->setTitle('PHPExcel Demo')
</span> <span>->setLastModifiedBy('Taylor Ren')
</span> <span>->setDescription('A demo to show how to use PHPExcel to manipulate an Excel file')
</span> <span>->setSubject('PHP Excel manipulation')
</span> <span>->setKeywords('excel php office phpexcel lakers')
</span> <span>->setCategory('programming')
</span> <span>;</span>
로그인 후 복사
로그인 후 복사
3. 충전을 시작하기위한 셀 기준 (왼쪽에서 오른쪽으로, 아래로). 참고 : PDO를 사용하여 데이터를 가져 오면 간단한 $ res = $ q-> fetchall (pdo :: fetch_assoc); Call은 반환 된 결과 데이터 세트가 색인없이 관련 배열 만 포함하도록합니다. 옵션이없는 옵션이 없으면 pdo :: fetch_assoc이없는 경우 결과 세트에는 실제로 두 개의 동일한 데이터 세트, 하나는 관련 배열 형식으로, 하나는 색인 형식으로 하나이며 FromArray를 사용할 때 Excel 파일에 복제물을 생성합니다.
우리는 또한 헤더 행 (ID, 시즌 등)을 스타일링하고 싶을 수도 있습니다. 그렇게하려면 두 가지 방법도 있습니다
한 가지 방법은 변경하고 변경하려는 스타일 객체를 검색하기 위해 일부 get 메소드를 사용하는 것입니다. 우리는 "배경 채우기"스타일을 위해 이것을합니다.
다른 하나는 "스타일"배열을 선언하고 변경하려는 스타일과 변경 사항을 지정하는 것입니다. 그런 다음 ApplyFromArray를 사용하여 스타일을 배치로 적용합니다. 여기서 우리는 글꼴과 정렬을 변경했습니다.
두 방법 모두 매개 변수 ($ header = 'a1 : h1';)로서의 지원 범위는 매우 편리합니다.
<span>$app->get('/', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->index($app);
</span><span>});
</span>
<span>$app->post('/export', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->export($app);
</span><span>});</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
마지막으로, 우리는 열 너비를 조정하여 각 열의 최대 표시 길이를 맞출 수 있습니다.
불행히도, 이것은 범위 매개 변수를 지원하지 않으므로, 우리는이를 위해 루프를 사용합니다.
지금 파일을 저장하면 - 나중에 저장에 대해 논의 할 것입니다 - XLSX 파일에 데이터가 채워져 있고 다음과 같은 형식이 적합하다는 것을 알 수 있습니다.
다른 시트 추가 및 공식 나는 항상 별도의 시트를 사용하여 원래 데이터를 저장하고 요약 및/또는 분석 정보를 표시하기 위해 하나 이상의 시트를 저장합니다.
$ ews2 : 삽입해야 할 Excel 워크 시트 인스턴스;
$ 위치 :이 워크 시트의 색인. 따라서 0은 그것이 첫 번째가되어야한다는 것을 의미합니다. -1은 그것이 마지막이어야한다는 것을 의미합니다.
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
워크 시트를 삽입하면 평소와 같이이 워크 시트의 셀을 채울 수 있으며 스타일을 적용 할 수 있습니다. 이 시트에서는 공식을 사용합니다
알다시피, 그것은 우리가 이전 섹션에서 한 것과 다르지 않습니다. 공식 문자열은 필요한 계산을 수행하기 위해 Excel 파일에 입력 할 것과 같습니다.
참고 : 셀 참조 (G2 : G91)에 특별한주의를 기울이십시오. 공식을 작성하는 게으른 방법은 G : G와 같은 범위를 사용하는 것입니다. 이것은 시트에 차트가 없을 때 잘 작동합니다. 차트가 있으면 G : G 표기법이 실패하여 예외를 던집니다.
이“요약”시트는 다음과 같습니다
셀 B4에 표시된 %는 다음 코드에 의해 설정됩니다.
여기에서 몇 가지 스타일 문제에 주목하십시오. A1의 경우 다음 스타일을 적용했습니다
<span>$app->get('/', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->index($app);
</span><span>});
</span>
<span>$app->post('/export', function () use ($app)
</span><span>{
</span> <span>$c=new trExcel<span>\Excel</span>();
</span> <span>return $c->export($app);
</span><span>});</span>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
결과는 글꼴 무게, 글꼴 크기 및 정렬이 올바르게 적용됨을 보여줍니다. A1 및 B1을 A1로 병합하는 것도 올바르게 수행됩니다. 그러나이 병합 된 셀에서 setAutosize 방법이 실패합니다. 결과적 으로이 셀 (A1)은 여전히 압박을 받았습니다. 이것은 자동 너비 계산이 항상 작동하지 않는다는 것을 의미합니다. 어쨌든 큰 문제는 아닙니다.
그림은 수천 단어의 가치가 있습니다
데이터를 시각적으로 표현하는 것이 항상 좋으므로 차트는 유용합니다. Excel에는 우리가 선택할 수있는 풍부한 내장 차트 세트가 있습니다. PHPEXCEL은 거의 모든 것을 활용할 수 있습니다. 우리가 만든 첫 번째 차트는 Lakers 팀과 그 상대의 각 게임에서 점수의 기복을 보여주는 라인 차트입니다.
차트 만들기는 라이브러리를 지원하더라도 긴 코딩 작업입니다. 이 프로세스의 전체 코드는 Classexcel.php 파일에 상주하는 AddChart1 및 AddChart2 메소드에서 찾을 수 있습니다. 주요 단계를 설명하겠습니다.
데이터 시리즈 레이블
phpexcel을 사용하여 Excel 파일에서 데이터를 읽으려면 어떻게해야합니까? 먼저 독자를 만들어야합니다. 독자는 Excel 파일을 열고 내용을 읽을 책임이 있습니다. 리더를 만든 후로드 메소드를 호출하여 Excel 파일을로드 할 수 있습니다. 그런 다음 셀에 액세스하고 값을 얻음으로써 Excel 파일의 데이터에 액세스 할 수 있습니다.
phpexcel을 사용하여 기존 Excel 파일에 데이터를 작성하려면 어떻게해야합니까?
데이터를 작성하려면 데이터를 작성하십시오. 기존 Excel 파일 PHPEXCEL을 사용하여 먼저 리더를 생성하고 Excel 파일을로드해야합니다. 그런 다음 Excel 파일의 셀에 액세스하고 값을 설정할 수 있습니다. 데이터를 수정 한 후에는 작가를 만들고 저장 메소드를 호출하여 변경 사항을 저장할 수 있습니다.
phpexcel을 사용하여 Excel 파일의 셀을 어떻게 포맷 할 수 있습니까?
phpexcel은 풍부한 세트를 제공합니다. Excel 파일의 셀 포맷 방법. 셀의 글꼴, 색상, 정렬, 테두리 및 숫자 형식을 설정할 수 있습니다. 또한 셀을 병합하고 셀의 너비와 높이를 설정하고 셀에 스타일을 적용 할 수 있습니다.
phpexcel을 사용하여 대형 Excel 파일을 처리 할 수 있습니까?
Phpexcel으로 대형 Excel 파일을 처리하는 방법 메모리 제한으로 인해 어려울 수 있습니다. 그러나 PHPExcel은 메모리 사용을 줄이는 데 도움이되는 셀 캐싱 기능을 제공합니다. 셀 캐싱을 활성화하여 Phpexcel은 메모리 대신 캐시에 셀 데이터를 저장하여 메모리 사용을 크게 줄일 수 있습니다. phpexcel을 사용하여 Excel 파일에서 pdf를 생성하려면 어떻게 할 수 있습니까?
phpexcel은 Excel 파일에서 pdfs를 생성하는 것을 지원합니다. PDF를 생성하려면 PDF 유형 작가를 만들고 저장 메소드를 호출해야합니다. 프로젝트에 적절한 PDF 렌더링 라이브러리가 설치되어 있어야합니다.
phpexcel을 사용하여 Excel 파일에 이미지를 추가 할 수 있습니까?
phpexcel은 Excel 파일에 이미지를 추가 할 수 있습니다. . 이미지를 추가하려면 도면 객체를 만들고 이미지의 경로를 설정 한 다음 워크 시트에 이미지를 배치 해야하는 좌표를 지정해야합니다.
Phpexcel의 오류 및 예외를 어떻게 처리 할 수 있습니까? PHPEXCEL은 예외를 사용하여 오류를 처리합니다. 오류가 발생하면 Phpexcel은 예외를 던집니다. Try-Catch 블록을 사용하여 이러한 예외를 포착하여 적절하게 처리 할 수 있습니다. 이를 통해 프로그램의 흐름을 제어하고 사용자에게 의미있는 오류 메시지를 제공 할 수 있습니다.
위 내용은 phpexcel을 사용하여 Excel 파일과 차트를 생성합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!