Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar csv ke xls dalam php

Bagaimana untuk menukar csv ke xls dalam php

PHPz
PHPzasal
2023-03-20 15:35:081736semak imbas

Semasa proses pembangunan sebenar, kami mungkin perlu menukar data dalam format CSV ke dalam format Excel (XLS atau XLSX). Kerana fail CSV hanyalah fail teks ringkas dan fail Excel menyokong lebih banyak fungsi, seperti penapisan data, pengisihan, paparan carta, dsb. PHP menyediakan perpustakaan fungsi yang berkuasa untuk memproses CSV dan Excel Berikut akan memperkenalkan cara menggunakan PHP untuk menukar fail CSV kepada fail Excel.

  1. Baca fail CSV

PHP menyediakan fungsi fgetcsv() untuk membaca fail CSV dan menghuraikan setiap baris ke dalam tatasusunan . Berikut ialah contoh membaca fail CSV:

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$fp = fopen($csvFile, 'r');
if(!$fp) {
    die("Error opening file");
}
$data = array();
while($row = fgetcsv($fp)) {
    $data[] = $row;
}
fclose($fp);

Kod ini mula-mula menyemak sama ada fail CSV wujud, kemudian membuka fail dan menggunakan fungsi fgetcsv() untuk membaca setiap baris fail dan menyimpan keputusan dalam tatasusunan.

  1. Buat fail Excel

PHPExcel ialah sambungan PHP yang sangat berkuasa untuk mencipta dan memanipulasi fail Excel. Kami boleh memuat turun PHPExcel dan memasukkannya ke dalam projek PHP kami. Kaedah untuk mencipta fail Excel kosong adalah seperti berikut:

require_once 'PHPExcel.php';

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

Kod ini menggunakan PHPExcel untuk mencipta fail Excel kosong dan menetapkan lembaran kerja lalai.

  1. Import data CSV ke dalam fail Excel

Menggunakan kaedah setCellValue() dalam PHPExcel, kami boleh mengimport data dalam fail CSV ke dalam Fail Excel. Berikut ialah contoh kod:

require_once 'PHPExcel.php';

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$csvData = file_get_contents($csvFile);
$data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

$row = 1;
foreach($data as $fields) {
    $col = 0;
    foreach($fields as $value) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

Kod ini mula-mula menggunakan fungsi file_get_contents() untuk membaca kandungan fail CSV, dan kemudian menggunakan fungsi preg_split() untuk membahagikan kandungan fail kepada dua tatasusunan -dimensi. Seterusnya, kami menggunakan fungsi setCellValueByColumnAndRow() PHPExcel untuk mengimport data ke dalam fail Excel.

  1. Simpan fail Excel

Akhir sekali, kami menggunakan kaedah save() PHPExcel untuk menyimpan fail dalam format XLS atau XLSX. Berikut ialah kod contoh lengkap:

require_once 'PHPExcel.php';

$csvFile = 'data.csv';
if(!file_exists($csvFile)) {
    die("File not found");
}
$csvData = file_get_contents($csvFile);
$data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));

$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

$row = 1;
foreach($data as $fields) {
    $col = 0;
    foreach($fields as $value) {
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
        $col++;
    }
    $row++;
}

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('data.xls');

Kod ini mengimport data ke dalam objek PHPExcel dan menggunakan kaedah createWriter() PHPExcel_IOFactory untuk menjana objek Excel5Writer untuk menyimpan objek PHPExcel dalam dokumen format XLS. Perlu diingat bahawa untuk menggunakan format Excel2007 (XLSX), anda perlu menukar Excel5 kepada Excel2007.

Ringkasan

Di atas ialah proses lengkap untuk menukar fail CSV kepada fail Excel. Mula-mula baca fail CSV, kemudian import data ke dalam objek PHPExcel dan simpan objek PHPExcel sebagai fail Excel. Perlu diingat bahawa dalam aplikasi sebenar, kami mungkin perlu melakukan pengesahan format dan pembersihan pada data yang diimport untuk memastikan integriti dan ketepatan data.

Atas ialah kandungan terperinci Bagaimana untuk menukar csv ke xls dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah ralat 401 dalam phpArtikel seterusnya:Apakah ralat 401 dalam php