无法在PHP Excel中创建多个工作表

湿婆

嗨,我正在PHP Excel中创建多个工作表,但是它不起作用。我面临一个问题“您试图通过越界索引将一个工作表设置为活动的:1.工作表的实际数量为1。”

这是我的代码:

function downloadReportInExcel($excelSheetDetails, $headers, $resultSetFields, $resultSetPointer) {
    /** Error reporting */
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Asia/Calcutta');

    if (PHP_SAPI == 'cli')
        die('This example should only be run from a Web Browser');

    /** Include PHPExcel */
    require_once '../../lib/PHPExcel.php';


    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    //Enable cell caching and serialize it so that memory footprint is small and performance is high
    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod);

    //Setting a default height for all rows
    $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);

    // Set document properties
    $objPHPExcel->getProperties()->setCreator($excelSheetDetails['createdBy']) //"Maarten Balliauw"
            ->setLastModifiedBy($excelSheetDetails['modifiedBy']) //"Maarten Balliauw"
            ->setTitle($excelSheetDetails['title']) //"Office 2007 XLSX Test Document"
            ->setSubject($excelSheetDetails['subject']) //"Office 2007 XLSX Test Document"
            ->setDescription($excelSheetDetails['description']) //"Test document for Office 2007 XLSX, generated using PHP classes."
            ->setKeywords("office 2007 openxml php")
            ->setCategory($excelSheetDetails['category']); //"Test result file"
    // Add data
    $i = 1;
    $j = 65;
    $length = count($headers);
    for ($count = 0; $count < $length; $count++) {
        //Add headers
        foreach ($headers[$count] AS $headerValue)
        {
            //echo $headerValue;
            $objPHPExcel->setActiveSheetIndex($count)
                    ->setCellValue('' . chr($j) . $i . '', $headerValue);
            $objPHPExcel->getActiveSheet()->getColumnDimension(chr($j))->setAutoSize(true);
            $j++;
        }
        //~ exit;
        $k = $j - 1;
        $i+= 1;
        $j = 65;

        $styleArray = array(
            'font' => array(
                'bold' => true,
            ),
            'alignment' => array(
                'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
                'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER,
            ),
        );
        $objPHPExcel->getActiveSheet()->getStyle(chr($j) . '1:' . chr($k) . '1')->applyFromArray($styleArray);

        foreach ($resultSetPointer[$count] AS $result)
        {
            $resultKeyIndex = -1;
            //print_r($result);
            for ($counter = $j; $counter <= $k; $counter++)
            {
                $objPHPExcel->setActiveSheetIndex($count)
                        ->setCellValue('' . chr($counter) . $i . '', $result[$resultSetFields[$count][++$resultKeyIndex]]);
                //echo $result[$resultKeyIndex].'<br />';
            }
            $i++;
        }
        //exit;
        // Rename worksheet
        $objPHPExcel->getActiveSheet()->setTitle($excelSheetDetails['worksheetTitle']); //"Simple"
        // Set active sheet index to the first sheet, so Excel opens this as the first sheet
        $objPHPExcel->setActiveSheetIndex($count);
    }
    //print_r($objPHPExcel);exit;
    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $excelSheetDetails['fileName'] . '.xls"');
    header('Cache-Control: max-age=0');
    // If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');

    // If you're serving to IE over SSL, then the following may be needed
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
    header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header('Pragma: public'); // HTTP/1.0

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');

    //Break cyclic references to clear worksheet from memory
    $objPHPExcel->disconnectWorksheets();
    unset($objPHPExcel);

    exit;
}

在这里,我提到了我在此函数中传递的所有参数

for($count = 0; $count < $studentWiseAttendanceLen; $count++) {
    $finalArray[0][$count]['name']      = $studentWiseAttendance[$count]['student'];
    $finalArray[0][$count]['present']   = $studentWiseAttendance[$count]['presentPercentage'];
    $finalArray[0][$count]['absent']    = $studentWiseAttendance[$count]['absentPercentage'];
    $finalArray[0][$count]['late']      = $studentWiseAttendance[$count]['latePercentage'];
    $finalArray[0][$count]['overall']   = $studentWiseAttendance[$count]['overallPresent'];
}
for($count = 0; $count < $dateWiseAttendanceLen; $count++) {
    $finalArray[1][$count]['attendancedatetime']    = $dateWiseAttendance[$count]['attendanceTakenTime'];
    $finalArray[1][$count]['present']               = $dateWiseAttendance[$count]['presentPercentage'];
    $finalArray[1][$count]['absent']                = $dateWiseAttendance[$count]['absentPercentage'];
    $finalArray[1][$count]['late']                  = $dateWiseAttendance[$count]['latePercentage'];
    $finalArray[1][$count]['totalStudent']          = $dateWiseAttendance[$count]['totalStudent'];
}

//echo("<script>console.log('PHP: ". print_r($dateWiseAttendance) ."');</script>");
// Array fields
$resultSetFields[0] = array(
    'name',
    'present',
    'absent',
    'late',
    'overall'
);
$resultSetFields[1] = array(
    'attendancedatetime',
    'present',
    'absent',
    'late',
    'totalStudent'
);

// Excel details
$excelSheetDetails = array(
    'createdBy' => 'Admin',
    'modifiedBy' => 'Admin',
    'title' => $subjectName . ' Attendance Report',
    'subject' => 'Attendance Report',
    'description' => 'Attendance Report for students in percentage',
    'category' => 'Report file',
    'worksheetTitle' => 'Attendance Details',
    'fileName' => $subjectName . ' Attendance_Report'
);
// File headers
$headers[0] = array(
    'STUDENT NAME',
    'PRESENT(%)',
    'ABSENT(%)',
    'LATE(%)',
    'OVERALL PRESENT(%)'
);
$headers[1] = array(
    'CLASS TAKEN',
    'PRESENT(%)',
    'ABSENT(%)',
    'LATE(%)',
    'OVERALL STUDENT PRESENT'
);
downloadReportInExcel($excelSheetDetails, $headers, $resultSetFields, $finalArray);
projectalpha

你需要

$objPHPExcel->createSheet();

在新表之前

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法踢出 Excel 工作簿中默认创建的工作表

来自分类Dev

无法使用带有 Python LXML 库的 Excel 工作表中的数据创建 XML

来自分类Dev

PHP Excel在多个工作表中多次导出|| 致命错误:未捕获的异常'PHPExcel_Exception'

来自分类Dev

循环以在多个Excel工作簿中创建多个工作表

来自分类Dev

PHP创建的Excel工作表在打开时会产生错误

来自分类Dev

PHP中的Capctha创建代码无法正常工作

来自分类Dev

无法在VBA Excel中迭代工作表和列

来自分类Dev

无法在VBA Excel中迭代工作表和列

来自分类Dev

无法在 selenium webdriver 中写入 Excel 工作表

来自分类Dev

R:无法读取 Excel 中的所有工作表

来自分类Dev

多个工作表的宏无法正常工作

来自分类Dev

多个工作表的宏无法正常工作

来自分类Dev

无法在PHP中创建对象

来自分类Dev

无法读取Excel工作表

来自分类Dev

无法在数据库中创建多个表

来自分类Dev

无法使用 SQLite 在 ionic1 中创建多个表

来自分类Dev

PHP插入表无法正常工作

来自分类Dev

无法在Excel Web加载项中创建表

来自分类Dev

无法从Excel中的数据透视表创建散点图

来自分类Dev

无法删除创建的Excel表

来自分类Dev

无法使用php mysql创建表

来自分类Dev

我正在尝试从mysqli数据库导出Excel工作表中的数据,但是我无法在多个工作表中序列化1,2,3..etc之类的S号?

来自分类Dev

我正在尝试从mysqli数据库导出Excel工作表中的数据,但是我无法在多个工作表中序列化1,2,3..etc之类的S号?

来自分类Dev

使用多个工作表创建Excel

来自分类Dev

Excel工作表无法在C#中从服务器工作

来自分类Dev

php Cookie无法正常工作,无法设置

来自分类Dev

多个SQLite表无法正常工作

来自分类Dev

PHP中的表单验证无法正常工作

来自分类Dev

PHP中的Javascript无法正常工作

Related 相关文章

  1. 1

    无法踢出 Excel 工作簿中默认创建的工作表

  2. 2

    无法使用带有 Python LXML 库的 Excel 工作表中的数据创建 XML

  3. 3

    PHP Excel在多个工作表中多次导出|| 致命错误:未捕获的异常'PHPExcel_Exception'

  4. 4

    循环以在多个Excel工作簿中创建多个工作表

  5. 5

    PHP创建的Excel工作表在打开时会产生错误

  6. 6

    PHP中的Capctha创建代码无法正常工作

  7. 7

    无法在VBA Excel中迭代工作表和列

  8. 8

    无法在VBA Excel中迭代工作表和列

  9. 9

    无法在 selenium webdriver 中写入 Excel 工作表

  10. 10

    R:无法读取 Excel 中的所有工作表

  11. 11

    多个工作表的宏无法正常工作

  12. 12

    多个工作表的宏无法正常工作

  13. 13

    无法在PHP中创建对象

  14. 14

    无法读取Excel工作表

  15. 15

    无法在数据库中创建多个表

  16. 16

    无法使用 SQLite 在 ionic1 中创建多个表

  17. 17

    PHP插入表无法正常工作

  18. 18

    无法在Excel Web加载项中创建表

  19. 19

    无法从Excel中的数据透视表创建散点图

  20. 20

    无法删除创建的Excel表

  21. 21

    无法使用php mysql创建表

  22. 22

    我正在尝试从mysqli数据库导出Excel工作表中的数据,但是我无法在多个工作表中序列化1,2,3..etc之类的S号?

  23. 23

    我正在尝试从mysqli数据库导出Excel工作表中的数据,但是我无法在多个工作表中序列化1,2,3..etc之类的S号?

  24. 24

    使用多个工作表创建Excel

  25. 25

    Excel工作表无法在C#中从服务器工作

  26. 26

    php Cookie无法正常工作,无法设置

  27. 27

    多个SQLite表无法正常工作

  28. 28

    PHP中的表单验证无法正常工作

  29. 29

    PHP中的Javascript无法正常工作

热门标签

归档