Php 只读特定工作表

Php 只读特定工作表,php,phpexcel,xls,Php,Phpexcel,Xls,我试图只阅读xls文档中的一页,我有以下内容: $objPHPExcel = $objReader->load('daily/' . $fisierInbound); $objWorksheet = $objPHPExcel->setActiveSheetIndex(0); foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { $worksheetTitle = $w

我试图只阅读xls文档中的一页,我有以下内容:

 $objPHPExcel = $objReader->load('daily/' . $fisierInbound);
 $objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {

            $worksheetTitle     = $worksheet->getTitle();
            $highestRow         = $worksheet->getHighestRow(); // e.g. 10
            $highestColumn      = $worksheet->getHighestColumn(); // e.g 'F'
            $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
            $dataCalls = $worksheet->getCellByColumnAndRow(2, 2)->getValue();
            $dataSubstr = substr($dataCalls, 53);


        } 
问题是它读取文件的所有页

有什么想法吗?

/Documentation
文件夹中的文档所述(第5.2节,标题为“仅从文件中读取命名工作表”):

如果您知道要阅读的工作表的名称

$inputFileType = 'Excel5'; 
$inputFileName = './sampleData/example1.xls'; 
$sheetname = 'Data Sheet #2'; 

/**  Create a new Reader of the type defined in $inputFileType  **/ 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
/**  Advise the Reader of which WorkSheets we want to load  **/ 
$objReader->setLoadSheetsOnly($sheetname); 
/**  Load $inputFileName to a PHPExcel Object  **/ 
$objPHPExcel = $objReader->load($inputFileName); 
如果您事先不知道工作表的名称,可以在加载文件之前获取所有工作表的列表

$inputFileType = 'Excel5'; 
$inputFileName = './sampleData/example1.xls'; 

/**  Create a new Reader of the type defined in $inputFileType  **/ 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
/**  Read the list of worksheet names and select the one that we want to load  **/
$worksheetList = $objReader->listWorksheetNames($inputFileName)
$sheetname = $worksheetList[0]; 

/**  Advise the Reader of which WorkSheets we want to load  **/ 
$objReader->setLoadSheetsOnly($sheetname); 
/**  Load $inputFileName to a PHPExcel Object  **/ 
$objPHPExcel = $objReader->load($inputFileName); 

您可以比获取工作表名称列表更容易:

$objPHPExcel->setActiveSheetIndex(2);
$worksheet = $objPHPExcel->getActiveSheet();

加载#2(第三个)工作表。

对于仍在挣扎的人来说,这是一个最简单的方法-

//include library
include('path/to/PHPExcel/IOFactory.php');

//load the file
$objPHPExcel = PHPExcel_IOFactory::load('your/path/for/excel/file');

//get the worksheet of your choice by its name
$worksheet = $objPHPExcel->getSheetByName('Name of sheet');

#and your work goes here...
可以通过名称或其在工作簿中的索引位置访问各个工作表。索引位置表示在MS Excel(或其他适当的电子表格程序)中打开工作簿时,每个工作表“选项卡”的显示顺序

要按名称访问工作表,请使用getSheetByName()方法,指定要访问的工作表的名称

//Retrieve the worksheet called 'Worksheet 1'
$objPHPExcel->getSheetByName('Worksheet 1');
要通过索引访问工作表,请使用getSheet()方法。 请注意,图纸的索引是从0开始的

//Retrieve the **1st 'tab' worksheet** e.g. called 'Sheet 1'
$worksheet = $objPHPExcel->getSheet(0);
//Retrieve the **2nd 'tab' worksheet** e.g. called 'Sheet 2'
$worksheet = $objPHPExcel->getSheet(1);

这一切都可以通过@Mark Baker的PHPExcel库来实现。谢谢。

您为每张工作表都准备了一份。很明显,他会读所有的书!您需要从PHPExcel的类中调用
getActiveSheet()
方法。我已经找到了答案。谢谢
getHighestRow()
应替换为
getHighestDataRow()
;列函数也是如此……但如果用户更改了工作表索引怎么办?
//Retrieve the **1st 'tab' worksheet** e.g. called 'Sheet 1'
$worksheet = $objPHPExcel->getSheet(0);
//Retrieve the **2nd 'tab' worksheet** e.g. called 'Sheet 2'
$worksheet = $objPHPExcel->getSheet(1);