本文整理汇总了PHP中PHPExcel::getWorksheetIterator方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPExcel::getWorksheetIterator方法的具体用法?PHP PHPExcel::getWorksheetIterator怎么用?PHP PHPExcel::getWorksheetIterator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPExcel
的用法示例。
在下文中一共展示了PHPExcel::getWorksheetIterator方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: load_worksheets
/**
* init worksheets
*
* @access protected
*/
protected function load_worksheets()
{
//empty the worksheets
$this->_worksheets = array();
foreach ($this->_spreadsheet->getWorksheetIterator() as $i => $worksheet) {
//create default worksheet
$worksheet = new Worksheet($this->_spreadsheet, $worksheet);
$this->_worksheets[$i] = $worksheet;
}
return $this;
}
示例2: parseFile
/**
* Parse file.
* @param array $columns
* @return array
*/
public function parseFile($columns = [])
{
$content = [];
$this->setSelectedColumn($columns);
if (!$this->isParsed) {
$iterator = $this->excel->getWorksheetIterator();
foreach ($iterator as $this->worksheet) {
if ($this->reader->isSelected($iterator->key())) {
$worksheet = $this->parseWorksheet();
if (!empty($worksheet)) {
$title = $this->worksheet->getTitle();
$content[$title] = $worksheet;
}
}
}
}
$this->isParsed = true;
return $content;
}
示例3: parseFile
/**
* Parse the file
* @param array $columns
* @return SheetCollection
*/
public function parseFile($columns = array())
{
// Init new sheet collection
$workbook = new SheetCollection();
// Set the selected columns
$this->setSelectedColumns($columns);
// If not parsed yet
if (!$this->isParsed) {
// Set worksheet count
$this->w = 0;
// Get selected sheets
$iterator = $this->excel->getWorksheetIterator();
// Loop through the worksheets
foreach ($iterator as $this->worksheet) {
// Check if the sheet might have been selected by it's index
if ($this->reader->isSelectedByIndex($iterator->key())) {
// Parse the worksheet
$worksheet = $this->parseWorksheet();
// If multiple sheets
if ($this->parseAsMultiple()) {
// Push every sheet
$workbook->push($worksheet);
$workbook->setTitle($this->excel->getProperties()->getTitle());
} else {
// Ignore the sheet collection
$workbook = $worksheet;
break;
}
}
$this->w++;
}
}
$this->isParsed = true;
// Return itself
return $workbook;
}
示例4: updateNamedFormulas
/**
* Update named formulas (i.e. containing worksheet references / named ranges)
*
* @param PHPExcel $pPhpExcel Object to update
* @param string $oldName Old name (name to replace)
* @param string $newName New name
*/
public function updateNamedFormulas(PHPExcel $pPhpExcel, $oldName = '', $newName = '')
{
if ($oldName == '') {
return;
}
foreach ($pPhpExcel->getWorksheetIterator() as $sheet) {
foreach ($sheet->getCellCollection(false) as $cell) {
if (!is_null($cell) && $cell->getDataType() == PHPExcel_Cell_DataType::TYPE_FORMULA) {
$formula = $cell->getValue();
if (strpos($formula, $oldName) !== false) {
$formula = str_replace("'" . $oldName . "'!", "'" . $newName . "'!", $formula);
$formula = str_replace($oldName . "!", $newName . "!", $formula);
$cell->setValueExplicit($formula, PHPExcel_Cell_DataType::TYPE_FORMULA);
}
}
}
}
}
示例5: calcSheetOffsets
/**
* Calculate offsets for Worksheet BOF records.
*
* @access private
*/
private function calcSheetOffsets()
{
$boundsheet_length = 10;
// fixed length for a BOUNDSHEET record
// size of Workbook globals part 1 + 3
$offset = $this->_datasize;
// add size of Workbook globals part 2, the length of the SHEET records
$total_worksheets = count($this->phpExcel->getAllSheets());
foreach ($this->phpExcel->getWorksheetIterator() as $sheet) {
$offset += $boundsheet_length + strlen(PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($sheet->getTitle()));
}
// add the sizes of each of the Sheet substreams, respectively
for ($i = 0; $i < $total_worksheets; ++$i) {
$this->worksheetOffsets[$i] = $offset;
$offset += $this->worksheetSizes[$i];
}
$this->biffSize = $offset;
}
示例6: visitPage
/**
* Render $page into html.
*
* This method is generally called via double-dispatch, as provided by Visitor\VisitableTrait.
*
* @param PageInterface $page
* @return string
* @throws Exception if no tables found in page.
*/
public function visitPage(PageInterface $page)
{
/** @var WritableInterface[] $writables */
$writables = [$page];
/** @var TableInterface[] $tables */
$tables = [];
while ($writables !== []) {
$writable = array_pop($writables);
if (method_exists($writable, 'getWritable') === true && $writable->getWritable() !== null) {
$writables[] = $writable->getWritable();
}
if (method_exists($writable, 'getWritables') === true) {
$writables = array_merge($writables, array_values($writable->getWritables()));
}
if ($writable instanceof TableInterface) {
$tables[] = $writable;
}
}
if ($tables === []) {
throw new Exception("No tables found in writables.");
}
$objPHPExcel = new \PHPExcel();
foreach ($tables as $table) {
// Create a sheet
$objWorkSheet = $objPHPExcel->createSheet();
if (sizeof($table->getRows()) > 0) {
// Write header
/** @var FieldInterface $field */
foreach (array_values($table->getRows()[0]->getWritableBearer()->getWritables()) as $j => $field) {
$cellIndex = static::excelRow($j) . "1";
$objWorkSheet->setCellValue($cellIndex, $field->getLabel());
$objWorkSheet->getStyle($cellIndex)->getFont()->setBold(true);
}
// Write cells
foreach ($table->getRows() as $i => $row) {
foreach (array_values($row->getWritableBearer()->getWritables()) as $j => $field) {
if ($field->getInitial() !== "") {
$cellIndex = static::excelRow($j) . ($i + 2);
$objWorkSheet->setCellValue($cellIndex, $field->getInitial());
}
}
}
} else {
$objWorkSheet->setCellValue("A1", "No records found");
}
}
// Remove worksheet 0; it was created with the file but we never wrote to it
$objPHPExcel->removeSheetByIndex(0);
// Auto size columns for each worksheet
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$objPHPExcel->setActiveSheetIndex($objPHPExcel->getIndex($worksheet));
$sheet = $objPHPExcel->getActiveSheet();
$cellIterator = $sheet->getRowIterator()->current()->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(true);
foreach ($cellIterator as $cell) {
$sheet->getColumnDimension($cell->getColumn())->setAutoSize(true);
}
}
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
$tmp = tmpfile();
$fileLocation = stream_get_meta_data($tmp)['uri'];
ob_start();
$objWriter->save('php://output');
return ob_get_clean();
}
示例7: _writeExterns
/**
* Write the EXTERNCOUNT and EXTERNSHEET records. These are used as indexes for
* the NAME records.
*/
private function _writeExterns()
{
// Create EXTERNCOUNT with number of worksheets
$this->_writeExterncount(count($this->_phpExcel->getAllSheets()));
// Create EXTERNSHEET for each worksheet
foreach ($this->_phpExcel->getWorksheetIterator() as $sheet) {
$this->_writeExternsheet($sheet->getTitle());
}
}