원생 phop 엑셀 파일 읽 기와 쓰기 방법 분석 실현
최근 작업 중 에 데이터베이스 에 있 는 데 이 터 를 엑셀 파일 로 내 보 내 고 엑셀 파일 을 다운로드 해 야 합 니 다.예전 에 해 본 적 이 없어 서 바 이 두 를 해 봤 습 니 다.인터넷 에서 말 하 는 것 은 대부분이 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.