欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php excel寫

傅智翔1年前8瀏覽0評論

php excel寫的氣象數(shù)據(jù)處理示例

在氣象數(shù)據(jù)處理中,我們常需要把氣象站的原始觀測數(shù)據(jù)做格式化和處理。這時我們往往需要用到Excel軟件來進行數(shù)據(jù)處理。而php excel這個PHP庫可以幫助我們直接把處理好的數(shù)據(jù)導出為Excel文件,方便我們進行數(shù)據(jù)交換和傳播。

我們舉一個實例來說明php excel是如何在氣象數(shù)據(jù)處理中發(fā)揮作用的。我們需要處理某個氣象站站點的2021年4月份的氣象數(shù)據(jù)。原始觀測數(shù)據(jù)以txt文件的形式保存在服務器上,數(shù)據(jù)用空格分隔。

站點ID    年   月  日  時  指標1  指標2  指標3
Sta1      2021 4   1   0   18.6   85.3   1021.2
Sta1      2021 4   1   1   18.5   84.9   1021.1
...

我們需要先把txt文件中的文本數(shù)據(jù)讀入PHP中,再進行格式化和處理,最后用php excel來把處理好的數(shù)據(jù)寫成Excel文件。以下為處理過程的代碼實現(xiàn):

//讀取txt文件
$file = 'data.txt';
$lines = file($file);
//指定Excel文件名和工作表名
$excel = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$worksheet = $excel->getActiveSheet();
$worksheet->setTitle('Station1_April_2021');
//寫入Excel表頭
$worksheet->setCellValue('A1', 'Station ID');
$worksheet->setCellValue('B1', 'Year');
$worksheet->setCellValue('C1', 'Month');
$worksheet->setCellValue('D1', 'Day');
$worksheet->setCellValue('E1', 'Hour');
$worksheet->setCellValue('F1', 'Indicator 1');
$worksheet->setCellValue('G1', 'Indicator 2');
$worksheet->setCellValue('H1', 'Indicator 3');
//寫入Excel數(shù)據(jù)
$row = 2;
foreach ($lines as $line) {
$data = preg_split('/\s+/', $line, -1, PREG_SPLIT_NO_EMPTY);
if ($data[0] == 'Sta1') {
$worksheet->setCellValue('A'.$row, $data[0]);
$worksheet->setCellValue('B'.$row, $data[1]);
$worksheet->setCellValue('C'.$row, $data[2]);
$worksheet->setCellValue('D'.$row, $data[3]);
$worksheet->setCellValue('E'.$row, $data[4]);
$worksheet->setCellValue('F'.$row, $data[5]);
$worksheet->setCellValue('G'.$row, $data[6]);
$worksheet->setCellValue('H'.$row, $data[7]);
$row++;
}
}
//設置Excel列寬和格式
$worksheet->getColumnDimension('A')->setWidth(20);
$worksheet->getColumnDimension('B')->setWidth(8);
$worksheet->getColumnDimension('C')->setWidth(8);
$worksheet->getColumnDimension('D')->setWidth(8);
$worksheet->getColumnDimension('E')->setWidth(8);
$worksheet->getColumnDimension('F')->setWidth(12);
$worksheet->getColumnDimension('G')->setWidth(12);
$worksheet->getColumnDimension('H')->setWidth(12);
$worksheet->getStyle('A1:H1')->getFont()->setBold(true);
$worksheet->getStyle('A2:H'.$row)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
//輸出Excel文件
$filename = 'Station1_April_2021.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objwriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($excel, 'Xlsx');
$objwriter->save('php://output');
exit();

代碼解釋:

第1行:讀取txt文件到數(shù)組$lines中
第4行:創(chuàng)建Excel文件對象$excel
第5行:指定工作表$worksheet名稱
第9-15行:寫入Excel表頭數(shù)據(jù)
第17-25行:循環(huán)讀取$lines數(shù)組,解析數(shù)組中每行數(shù)據(jù),寫入Excel工作表中,并統(tǒng)計行數(shù)$row
第28-35行:設置Excel列寬和文字排列格式
第38-43行:瀏覽器正常輸出Excel下載文件

通過這個實例,我們可以輕松了解php excel的應用和使用方法,并在數(shù)據(jù)處理和交換中大大提高工作效率。在實際工作中,我們可以根據(jù)需要,進一步完善和優(yōu)化php excel的功能,如設置Excel單元格格式、添加注釋、增加圖表、操作Excel文件等。