찾다
백엔드 개발PHP 튜토리얼기사에서는 기본적으로 PHP를 사용하여 Excel 및 CSV 파일을 내보내는 방법을 설명합니다.

내보낸 의사 코드는 다음과 같습니다.
/**
 * 导出excel文件
 *
 * @param string $excelFileName 导出的文件名
 * @param array $title excel的标题列
 * @param array $data 导出的数据
 */
public function exportExcel($excelFileName, $title, $data)
{
    $str = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\r\nxmlns=\"http://www.w3.org/TR/REC-html40\">\r\n<head>\r\n<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>";
    $str .="<table border=1 align=center cellpadding=0 cellspacing=0>";
    // 拼接标题行
    $str .= &#39;<tr style="height:25px;font-size:13px;font-weight: bold;">&#39;;
    foreach ($title as $key => $val) {
        $str .= &#39;<td>&#39;.$val.&#39;</td>&#39;;
    }
    $str .= &#39;</tr>&#39;;
    // 拼接数据
    foreach ($data as $key => $val) {
        $str .= &#39;<tr style="text-align: left;height:25px;font-size:13px;">&#39;;
        foreach ($val as $v) {
            if (is_numeric($v) && $v > 100000000) {
                $str .= "<td style=&#39;vnd.ms-excel.numberformat:@&#39;>".$v."</td>";
            } elseif (is_numeric($v) && preg_match(&#39;/^[0-9]+(\.[0-9]{2})+$/&#39;, $v)) {
                // 是两位小数的保留2位显示
                $str .= "<td style=&#39;vnd.ms-excel.numberformat:0.00&#39;>".$v."</td>";
            } elseif (preg_match(&#39;/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (0[0-9]|1[0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])$/&#39;, $v)) {
                // 是日期
                $str .= "<td style=&#39;vnd.ms-excel.numberformat:yyyy-mm-dd\ hh\:mm\:ss&#39;>".$v."</td>";
            } else {
                $str .= "<td>".$v."</td>";
            }
        }
        $str .= "</tr>\n";
    }
    $str .= "</table></body></html>";
    // 实现文件下载
    header("Content-Type: application/vnd.ms-excel; name=&#39;excel&#39;");
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=" . $excelFileName);
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Pragma: no-cache");
    header("Expires: 0");
    exit($str);
}
저는 단순히 몇 가지 스타일과 몇 가지 정기 검사를 작성했는데 필요하지 않으면 삭제할 수 있습니다. 주로 일부 셀의 서식 지정 지침에 대해 이야기합니다.

위 내보내기에는 몇 가지 일반적인 문제가 있습니다. td 的样式来控制单元格。

导出伪代码如下:

/**
 * 导出CSV标准文件
 *
 * @param string $fileName 导出的文件名
 * @param array $title 标题列
 * @param array $data 导出的数据
 */
function exportCsv($fileName, $title, $data)
{
    // 清空输出流,防止有别的信息
    ob_end_clean();
    // 打开一个输出流
    ob_start();
    // 设置header信息
    header("Content-Type: text/csv");
    header("Content-Disposition:filename=". $fileName);
    // 打开文件流
    $fileHandle = fopen(&#39;php://output&#39;, &#39;w&#39;);
    //转码 防止乱码
    fwrite($fileHandle, chr(0xEF).chr(0xBB).chr(0xBF));
    // 先把标题写进去
    fputcsv($fileHandle, $title);
    $index = 0;
    foreach ($data as $item) {
        // 每2000条释放一次资源
        if ($index == 2000) {
            $index = 0;
            ob_flush();
            flush();
        }
        $index++;
        fputcsv($fileHandle, $item);
    }
    // 释放资源
    ob_flush();
    flush();
    ob_end_clean();
}

其中我简单写了些样式和一些正则校验,不用可以删除。主要说一下一些单元格的格式化说明。

以上的导出会有几个常见的问题:

1.对于身份证号,手机号等过大的数字 显示的时候会用科学计数法显示。如果不介意字符串显示的话可以通过设置 td 的样式来控制 style='vnd.ms-excel.numberformat:@' 这样表示用文本的方式来显示

2.对于数字如果需要保留小数位可以设置 style='vnd.ms-excel.numberformat:0.00' 需要保留几位小数就写几个0,需要注意一点如果你传入的值比保留的小数位多,那么值会被四舍五入。比如传入的是 87.98 而设置的保留小数位是 vnd.ms-excel.numberformat:0.0 那么会显示成 88.0

3.对于日期格式设置 style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm:ss' 其中空格、冒号等都需要转义。如果使用的是HTML里的空格字符表辅助出来会有些不一样,上面是常用的格式组合,可以自己做转换。还有一些别的转换 style='vnd.ms-excel.numberformat:"Short Date"' 这个会显示成 2019/7/1; style='vnd.ms-excel.numberformat:"Medium Date"' 会显示成 1-Jul-19

4.百分比显示。 要显示百分比的话 可以使用格式 style='vnd.ms-excel.numberformat:0%' 有一点需要注意显示的时候会把你的值放大100倍。也就是说假如你想显示成 2% 你传递进来的值需要是 0.02

5.千位分隔符。如果需要数字显示带千位分隔符可以设置 style='vnd.ms-excel.numberformat:#,###' 比如 123456 就会显示成 123,456

常用的也就上面这些了 这里还有个 常用列表 不过他使用的关键字是 mso-number-format 我尝试了下 style 中使用 mso-number-formatvnd.ms-excel.numberformat

1. ID 번호, 휴대폰 번호 및 기타 지나치게 큰 숫자의 경우 과학적 표기법으로 표시됩니다. 문자열 표시에 신경쓰지 않는다면 td style='vnd.ms-excel.numberformat:@' 스타일을 설정하여 제어할 수 있습니다. 3으로 표시됩니다. 날짜 형식은 로 설정하세요. >style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm:ss' 공백, 콜론 등은 이스케이프되어야 합니다. HTML에서 공백 문자표를 사용하는 경우에는 조금 다릅니다. 위의 내용은 일반적으로 사용되는 형식 조합이므로 직접 변환할 수 있습니다. 2019/7/1로 표시되는 몇 가지 다른 변환 style='vnd.ms-excel.numberformat:"Short Date"'이 있습니다. ='vnd.ms-excel.numberformat:"중간 날짜"'는 1-Jul-19

4로 표시됩니다. 백분율을 표시하려면 style='vnd.ms-excel.numberformat:0%' 형식을 사용할 수 있습니다. 주의할 점은 표시할 때 값이 100배 증폭된다는 것입니다. 즉, 2%로 표시하려면 전달하는 값이 0.02

5여야 합니다. 천 단위 구분 기호를 사용하여 숫자를 표시해야 하는 경우 style='vnd.ms-excel.numberformat:#,###'를 설정하면 됩니다. 예를 들어 123456123,456로 표시됩니다

위는 가장 일반적으로 사용되는 목록입니다. 여기에도 일반적으로 사용되는 목록이 있지만 그가 사용한 키워드는 mso-number-format입니다. style을 사용해 보았습니다. mso-number-formatvnd.ms-excel.numberformat을 모두 code>에서 사용할 수 있습니다.

PHP는 CSV를 내보냅니다🎜🎜CSV 파일은 실제로 범용 파일이며 때로는 텍스트 파일이라고도 합니다. 따라서 내보낸 CSV 데이터그램 파일은 셀 스타일을 설정할 수 없으며, xls 파일은 바이너리 파일이므로 엑셀 등의 도구를 이용하여 열어야 합니다. 이것을 더 빨리 내보내야 한다는 엄격한 요구 사항이 없다면 Alibaba Cloud의 일부 내보내기는 CSV 형식인 것을 알 수 있지만 여기서 필요한 것은 Excel 파일이어야 합니다. 🎜🎜의사 코드는 다음과 같습니다. 🎜rrreee🎜🎜추천 연구: "🎜 PHP 동영상 튜토리얼 🎜》                                                                                                                                                                  ''s ' to 🎜               ''s to ’ ‐ to ‐ ‐ ‐ ‐ ‐ ,

위 내용은 기사에서는 기본적으로 PHP를 사용하여 Excel 및 CSV 파일을 내보내는 방법을 설명합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 learnku에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
PHP의 목적 : 동적 웹 사이트 구축PHP의 목적 : 동적 웹 사이트 구축Apr 15, 2025 am 12:18 AM

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP : 데이터베이스 및 서버 측 로직 처리PHP : 데이터베이스 및 서버 측 로직 처리Apr 15, 2025 am 12:15 AM

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 SQL 주입을 어떻게 방지합니까? (준비된 진술, pdo)PHP에서 SQL 주입을 어떻게 방지합니까? (준비된 진술, pdo)Apr 15, 2025 am 12:15 AM

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP 및 Python : 코드 예제 및 비교PHP 및 Python : 코드 예제 및 비교Apr 15, 2025 am 12:07 AM

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP 실행 : 실제 예제 및 응용 프로그램PHP 실행 : 실제 예제 및 응용 프로그램Apr 14, 2025 am 12:19 AM

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP : 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다PHP : 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다Apr 14, 2025 am 12:15 AM

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다Apr 14, 2025 am 12:13 AM

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP의 지속적인 관련성 : 여전히 살아 있습니까?PHP의 지속적인 관련성 : 여전히 살아 있습니까?Apr 14, 2025 am 12:12 AM

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구