원생 phop 엑셀 파일 읽 기와 쓰기 방법 분석 실현

4327 단어 phpexcel
본 고의 실례 는 원생 php 가 excel 파일 읽 기와 쓰 기 를 실현 하 는 방법 을 분석 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
최근 작업 중 에 데이터베이스 에 있 는 데 이 터 를 엑셀 파일 로 내 보 내 고 엑셀 파일 을 다운로드 해 야 합 니 다.예전 에 해 본 적 이 없어 서 바 이 두 를 해 봤 습 니 다.인터넷 에서 말 하 는 것 은 대부분이 PHPExcel 류 를 사용 하여 엑셀 파일 을 조작 하 는 것 입 니 다.이것 은 다운로드 해 야 사용 할 수 있 습 니 다.저 는 원생 phop 만 사용 하고 싶 습 니 다.그렇게 귀 찮 고 싶 지 않 습 니 다.다행히 일부 네티즌 들 은 원생 phop 이 엑셀 파일 을 만 드 는 방법 에 대해 말 했 습 니 다.사실은 간단 합 니 다.다음은 제 가 인터넷 자료 와 결합 하여 실천 한 코드 를 공유 하 겠 습 니 다.
일반적으로 우리 의 이러한 데 이 터 를 유도 하 는 작업 은 사용자 가 웹 페이지 에서 특정한 단 추 를 누 르 면 해당 하 는 js 방법 을 촉발 한 다음 에 phop 인 터 페 이 스 를 요청 하여 이 루어 지기 때문에 주로 두 가지 방법 으로 이러한 수 요 를 완성 할 수 있다.
방법 1:js 코드 에서 window.open() 을 직접 사용 하여 phop 인터페이스 의 url 을 열 면 phop 에서 생 성 된 엑셀 파일 을 다운로드 할 수 있 습 니 다.
php 인터페이스 코드 는 다음 과 같 습 니 다.

$mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
$sql = 'select * from country';
$res = mysqli_query($mysqli, $sql);
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=country.xls");
echo "code\t";
echo "name\t";
echo "population\t
"; if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { echo $row['code']."\t"; echo $row['name']."\t"; echo $row['population']."\t
"; } }
방법 2:phop 인터페이스 에서 생 성 된 엑셀 파일 을 서버 에 저장 한 다음 에 파일 경 로 를 js 에 되 돌려 주 고 js 는 window.open() 을 사용 하여 파일 경 로 를 열 면 다운로드 할 수 있 습 니 다.
php 인터페이스 코드 는 다음 과 같 습 니 다.

$mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
$sql = 'select * from country';
$res = mysqli_query($mysqli, $sql);
$file = fopen('./country.xls', 'w');
fwrite($file, "code\tname\tpopulation\t
"); if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_array($res)) { fwrite($file, $row['code']."\t".$row['name']."\t".$row['population']."\t
");// , 。 } } fclose($file); echo 'http://www.jtw.com/....../country.xls';// js
두 가지 방법 은 매우 유사 하 다.데이터베이스 에 있 는 데 이 터 를 엑셀 파일 로 내 보 내 고 파일 을 다운로드 할 수 있다.최종 파일 캡 처 는 다음 과 같다.

필요 하 다 면,엑셀 파일 의 내용 을 읽 기 위해 서 는 원생 phop 을 사용 할 수 있 습 니 다.이것 은 주로 엑셀 파일 의 데 이 터 를 데이터베이스 에 가 져 와 야 하 는 경우 에 사 용 됩 니 다.
코드 는 다음 과 같 습 니 다.(파일 데 이 터 를 한 배열 로 읽 는 것 만 보 여 줍 니 다)

$path = './country.xls';
$file = fopen($path, 'r');
//     (   )
$row = fgets($file);
$row = explode("\t", $row);
$title = array();
foreach($row as $k => $v) {
  $title[$k] = str_replace("
", '', $v); } // $data = array(); $count = 0; while(!feof($file)) { $row = fgets($file); $row = explode("\t", $row); if(!$row[0]) continue;// foreach($title as $k => $v) { $data[$count][$title[$k]] = $row[$k]; } $count ++; } fclose($file); echo '<pre>'; print_r($data);
그러나 네 이 티 브 phop 을 사용 하여 생 성 된 엑셀 파일 에 문제 가 있 습 니 다.파일 을 편집 한 후에 파일 을 저장 할 때마다 다음 과 같은 캡 처 문제 가 발생 합 니 다.

무슨 영문 인지 모 르 겠 지만 생 성 된 파일 자체 에 문제 가 있 는 것 같 습 니 다...
또한 원생 phop 을 사용 하여 생 성 된 엑셀 파일 을 읽 을 때 중국어 코드 가 어 지 러 워 지 는 등 기이 한 상황 이 발생 할 수 있 습 니 다.따라서 네 이 티 브 phop 을 사용 하여 엑셀 파일 을 만 드 는 것 은 특정한 상황 에서 만 사용 하 는 것 이 좋 습 니 다.데이터 베 이 스 를 단순히 파일 로 내 보 내 서 보기 편 할 뿐 파일 을 수정 할 필요 도 없고 파일 을 읽 을 필요 도 없습니다.이러한 상황 은 원생 phop 을 사용 하여 엑셀 을 생 성하 면 수 요 를 만족 시 킬 수 있 고 제3자 라 이브 러 리 를 사용 하여 엑셀 을 조작 하 는 번 거 로 움 을 피 할 수 있다.그러나 생 성 된 파일 에 데 이 터 를 수정 하고 저장 하 며 읽 는 수요 가 있다 면 phopexcel 등 제3자 라 이브 러 리 를 사용 하여 읽 기와 쓰기 작업 을 하 는 것 이 좋 습 니 다.복잡 한 문 제 를 많이 피 할 수 있 습 니 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기