我有下一個Excel表,其中第一列的日期和其他數據(B,C)中的一些數據。將Excel錶轉換爲2d數組
1.
2.
要做到這一點,你需要在一小時內將每行和每列的數據相加(不要kn例如,從第一張圖片我們得到(0.0022 + 0.0078 + 0.0021 + 0.0078)* 2400≈47 - 從第三張圖片的表格的第一個元素。
我試圖用PHPExcel庫做到這一點:
$objPHPExcel = new PHPExcel();
$objPHPExcel = PHPExcel_IOFactory::load("data.xlsx");
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();
$day = 1;
$hour = 1;
$data = array(array());
for ($i = 1; $i < $highestRow + 1; $i++) {
$cell1 = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, $i)->getValue();
$cell2 = $objPHPExcel->getActiveSheet()->getCellByColumnAndRow(2, $i)->getValue();
$data[$day][$hour] += $cell1 + $cell2;
if($i % 2 == 0) { $data[$day][$hour] *= 2400; $hour++; }
if($i % 48 == 0) $day++;
if($hour % 24 == 0) $hour = 1;
}
第22行:
$data[$day][$hour] += $cell1 + $cell2;
我覺得這事與我的二維數組,因爲我可以看到我的數組鍵是不好的(不是1-24小時)。
什麼應該是代碼來獲取我的數據在二維數組像$data[1..29-31][1-24]
或任何其他?或者可能從圖片#3以其他方式獲得表格?
* related:* A1:A1487左對齊,A1488右對齊的事實與我有關。單元格中的左對齊通常表示文本;在這種情況下是日期時間的文本表示。如果這些是真實的日期時間,則默認情況下它們全都是右對齊的。 – Jeeped
哪一條是22號線? –
@接受它並不重要。我可以計算像highestRow/48這樣的天數。 –