gpt4 book ai didi

php - 如何找出使用 PHPExcel 从 Excel 文件中读取的行数和列数?

转载 作者:IT王子 更新时间:2023-10-29 00:53:40 31 4
gpt4 key购买 nike

通过以下代码,我可以使用 PHPExcel 从 Excel 文件中读取单元格。

我目前手动定义要读取的行数和列数。

有没有一种方法可以让 PHPExcel 告诉我必须读取多少行和多少列才能从工作表中获取所有数据,例如即使某些行和列留空?

$file_name = htmlentities($_POST['file_name']);
$sheet_name = htmlentities($_POST['sheet_name']);
$number_of_columns = htmlentities($_POST['number_of_columns']);
$number_of_rows = htmlentities($_POST['number_of_rows']);

$objReader = PHPExcel_IOFactory::createReaderForFile("data/" . $file_name);
$objReader->setLoadSheetsOnly(array($sheet_name));
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("data/" . $file_name);

echo '<table border="1">';
for ($row = 1; $row < $number_of_rows; $row++) {
echo '<tr>';
for ($column = 0; $column < $number_of_columns; $column++) {
$value = $objPHPExcel->setActiveSheetIndex(0)->getCellByColumnAndRow($column, $row)->getValue();
echo '<td>';
echo $value . '&nbsp;';
echo '</td>';
}
echo '</tr>';
}
echo '</table>';

解决方案:

谢谢,马克,这是具有这些功能的完整解决方案:

$file_name = htmlentities($_POST['file_name']);
$sheet_name = htmlentities($_POST['sheet_name']);
$number_of_columns = htmlentities($_POST['number_of_columns']);
$number_of_rows = htmlentities($_POST['number_of_rows']);

$objReader = PHPExcel_IOFactory::createReaderForFile("data/" . $file_name);
$objReader->setLoadSheetsOnly(array($sheet_name));
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load("data/" . $file_name);

$highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
$highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();

echo 'getHighestColumn() = [' . $highestColumm . ']<br/>';
echo 'getHighestRow() = [' . $highestRow . ']<br/>';

echo '<table border="1">';
foreach ($objPHPExcel->setActiveSheetIndex(0)->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
echo '<tr>';
foreach ($cellIterator as $cell) {
if (!is_null($cell)) {
$value = $cell->getCalculatedValue();
echo '<td>';
echo $value . '&nbsp;';
echo '</td>';
}
}
echo '</tr>';
}
echo '</table>';

alt text

最佳答案

$objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();

$objPHPExcel->setActiveSheetIndex(0)->getHighestRow();

$objPHPExcel->setActiveSheetIndex(0)->calculateWorksheetDimension();

它返回一个范围作为字符串,如 A1:AC2048

尽管尾随的空白行和列包含在其中。

编辑

或者您可以使用迭代器循环遍历现有的行和列,以获取工作表使用范围内的每个单元格。有关示例,请参阅生产分发中的/Tests/28iterator.php。可以将迭代器设置为忽略空白。

关于php - 如何找出使用 PHPExcel 从 Excel 文件中读取的行数和列数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562527/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com