我正在使用PHPExcel从excel文件导入数据。
在我当前的代码中,我正在读取具有工作表名称的工作表数据,并在数组中获取结果。现在,我想使用波纹管功能读取具有工作表ID的工作表数据。
$objPHPExcel->setActiveSheetIndex(2)
但这不适用于我的代码。
这是我的代码工作:
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** PHPExcel_IOFactory */
require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$inputFileType = 'Excel2007';
$inputFileName = 'hello.xlsx';
$sheetname = 'Sample'; // I DON'T WANT TO USE SHEET NAME HERE
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setLoadSheetsOnly($sheetname);
$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
echo ' Highest Column '. $getHighestColumn = $objPHPExcel->setActiveSheetIndex()->getHighestColumn(); // Get Highest Column
echo ' Get Highest Row '. $getHighestRow = $objPHPExcel->setActiveSheetIndex()->getHighestRow(); // Get Highest Row
echo "<pre>";
print_r($sheetData);
echo "</pre>";
对于马克·贝克(Mark Baker):
当工作表名称为Sample时,我的问题代码中得到此结果(工作表ID:2)
Array
(
[1] => Array
(
[A] => OrderDate
[B] => Region
[C] => Rep
[D] => Item
[E] => Units
[F] => Unit Cost
[G] => Total
)
[2] => Array
(
[A] => 1/6/13
[B] => East
[C] => Jones
[D] => Pencil
[E] => 95
[F] => 1.99
[G] => 189.05
)
[3] => Array
(
[A] => 1/23/13
[B] => Central
[C] => Kivell
[D] => Binder
[E] => 50
[F] => 19.99
[G] => 999.5
)
更改后,我得到以下结果:
PHPExcel Object
(
[_uniqueID:PHPExcel:private] => 543b9dab3f6da
[_properties:PHPExcel:private] => PHPExcel_DocumentProperties Object
(
[_creator:PHPExcel_DocumentProperties:private] => comp-30
[_lastModifiedBy:PHPExcel_DocumentProperties:private] =>
[_created:PHPExcel_DocumentProperties:private] => 1158364800
[_modified:PHPExcel_DocumentProperties:private] => 1413191554
[_title:PHPExcel_DocumentProperties:private] =>
[_description:PHPExcel_DocumentProperties:private] =>
[_subject:PHPExcel_DocumentProperties:private] =>
[_keywords:PHPExcel_DocumentProperties:private] =>
[_category:PHPExcel_DocumentProperties:private] =>
[_manager:PHPExcel_DocumentProperties:private] =>
[_company:PHPExcel_DocumentProperties:private] => Microsoft Corporation
[_customProperties:PHPExcel_DocumentProperties:private] => Array
(
[KSOProductBuildVer] => Array
(
[value] => 1033-9.1.0.4674
[type] => s
)
)
)
[_security:PHPExcel:private] => PHPExcel_DocumentSecurity Object
(
[_lockRevision:PHPExcel_DocumentSecurity:private] =>
[_lockStructure:PHPExcel_DocumentSecurity:private] =>
[_lockWindows:PHPExcel_DocumentSecurity:private] =>
[_revisionsPassword:PHPExcel_DocumentSecurity:private] =>
[_workbookPassword:PHPExcel_DocumentSecurity:private] =>
)
[_workSheetCollection:PHPExcel:private] => Array
(
[0] => PHPExcel_Worksheet Object
任何的想法?
谢谢。
经过Mark Baker
Now的帮助,我能够获取具有工作表ID的工作表数据。
这是完整的代码工作:
<?php
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
/** PHPExcel_IOFactory */
require_once dirname(__FILE__) . '../PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$inputFileType = 'Excel2007';
$inputFileName = 'hello.xlsx';
$sheetIndex = 2;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$sheetnames = $objReader->listWorksheetNames($inputFileName);
$objReader->setLoadSheetsOnly($sheetnames[$sheetIndex]);
$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
echo "<pre>";
print_r($sheetData);
echo "</pre>";
?>
谢谢马克贝克:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句