| 제목 | PHP Spreadsheet 로 엑셀을 저장하려고 합니다. | ||
|---|---|---|---|
| 카테고리 | CI 4 관련 | ||
| 글쓴이 | 엘제이 | 작성시각 | 2023/02/24 17:02:35 | 
|  | |||
| ob_start(); include "test.php"; $content = ob_get_contents(); ob_end_clean(); 
 이렇게 사용하면 된다는데 문제는 CI 를 이용하는 것이라 (컨트롤러에서 ...) ew ExcelLibrary(); -> html?? ('파일명', 데이타); 에서 데이타에 파일의 내용을 넘겨줘야 하는데 cii 컨트롤러에서 include를 사용할 수 없고 $var = view(.....); // 안되겠죠 ;;;; 
 방법을 알고 싶습니다. | |||
| 다음글 | 코드이그나이터 공부를 하려고 하는데 괜찮은 강좌 있을까... (1) | ||
| 이전글 | ci3 개발 환경.. 테스트 환경 구성에 대해서 (1) | ||
| 
                                변종원(웅파)
                                /
                                2023/03/09 14:30:01 /
                                추천
                                0
                             | 
| 
                                darkninja
                                /
                                2023/03/09 20:46:02 /
                                추천
                                0
                             https://stackoverflow.com/questions/66334823/implement-phpspreadsheet-in-codeigniter-4 Well, I launched the phpSpreadsheet download with composer from the Codeigniter 4 application root and then created the following controller: 
<?php
//ci4/app...
//ci4/PhpOffice\PhpSpreadsheet <= 여기에 업로드
//ci4/public
//
//ci4를 사용하시면 아래처럼 간단히 사용가능한거 같은데요 ㅋ 생각만...
namespace App\Controllers;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Example extends BaseController
{
    public function index()
    {
        $spreadsheet = new Spreadsheet();
        
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('A1', 'Hello World !');
        $writer = new Xlsx($spreadsheet);
        $writer->save('hello world.xlsx');
    }
} Everything seems to be working now! No need to edit other files. Thanks again to those who answered me, the information was useful | 
| 
                                darkninja
                                /
                                2023/03/09 23:15:42 /
                                추천
                                0
                             [php] composer 없이 spreadsheet 사용하기 https://duotone.co.kr/entry/composer-%EC%97%86%EB%8B%88-phpspreadsheet-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 This is a copy of PhpSpreadSheet that will work without need of Composer https://github.com/YoloZoloo/PhpSpreadSheet/tree/main 위에 가시면 ZipStream과 MyCLabs을 구할수 있습니다 ; 이것들을 PhpOffice 디렉토리와 같은 레벨에 복사하시고 또한 그안에 각각 autoloader.php를 만들어 넣으셔야 합니다 위 작업들이 순조롭게 진행되었을 경우 hello world.xlsx 파일을 ci4의 public디렉토리에서 구경할수 있습니다. 그럼 행운을 함께 하기를.... | 
| 
                                darkninja
                                /
                                2023/03/09 23:20:25 /
                                추천
                                0
                             음,, 중요한걸 빼먹었습니다 
<?php
namespace App\Controllers;
if (!defined('BASEPATH')) exit('No direct script access allowed');
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
class Home extends BaseController
{
  protected $farm_controller = FARM_CONTROLLER;
  protected $farm_table = FARM;
  protected $farm_recent_count = FARM_RECENT_COUNT;
  protected $gam_controller = GAM_CONTROLLER;
  protected $gam_table = GAM;
  protected $gam_recent_count = GAM_RECENT_COUNT;
  protected $machine_controller = MACHINE_CONTROLLER;
  protected $machine_table = MACHINE;
  protected $machine_recent_count = MACHINE_RECENT_COUNT;
  protected $cut_subject = CUT_SUBJECT;
  protected $board_recent_model;
  public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
	{
		// Do Not Edit This Line
		parent::initController($request, $response, $logger);
		require_once(DOC_BASE.'/PhpOffice/Psr/autoloader.php');
		require_once(DOC_BASE.'/PhpOffice/PhpSpreadsheet/autoloader.php');
		require_once(DOC_BASE.'/ZipStream/autoloader.php');
		require_once(DOC_BASE.'/MyCLabs/autoloader.php');
        $this->board_recent_model = new \App\Models\board_recent_model();
    }
	public function PhpSpreadsheet() 
	{
		$data = Array(
			'head_data' => array(
				'title' => 'PhpSpreadsheet',
			),
			'view_data' => array(
			),
			'tail_data' => array(
			)	
		);
		$data = array_replace_recursive($this->data, $data);
		echo view('main_head', $data['head_data']);
		echo view('PhpSpreadsheet', $data['view_data']);
		echo view('main_tail', $data['tail_data']);
	}
 view file 
<?php
use PhpOffice\PhpSpreadsheet\IOFactory;  
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
		error_reporting(E_ALL); 
		ini_set("display_errors", 1);
		ini_set('memory_limit', -1); // 메모리 제한을 해제해준다. 
		$spreadsheet = new Spreadsheet();
	    $sheet = $spreadsheet->getActiveSheet();
		$sheet->setCellValue('A1', 'Hello World !');
		$writer = new Xlsx($spreadsheet);
		$writer->save('hello world.xlsx');
       
?>
 
 
 | 
| 
                                darkninja
                                /
                                2023/03/09 23:42:06 /
                                추천
                                0
                             <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Test page</title> <style> </style> </head> <body> <?php //source //https://duotone.co.kr/entry/composer-%EC%97%86%EB%8B%88-phpspreadsheet-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 //https://github.com/YoloZoloo/PhpSpreadSheet/tree/main //https://products.aspose.app/cells/ko/viewer use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; //define('DOC_BASE', DOCUMENT_ROOT.BASE_PATH); define('DOC_BASE', '../ci-426'); require_once(DOC_BASE.'/PhpOffice/Psr/autoloader.php'); require_once(DOC_BASE.'/PhpOffice/PhpSpreadsheet/autoloader.php'); require_once(DOC_BASE.'/ZipStream/autoloader.php'); require_once(DOC_BASE.'/MyCLabs/autoloader.php'); error_reporting(E_ALL); ini_set("display_errors", 1); ini_set('memory_limit', -1); // 메모리 제한을 해제해준다. $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', '한번만 더 해보자!'); $writer = new Xlsx($spreadsheet); $writer->save('one more.xlsx'); ?> </body> </html> 
 | 
라이브러리로 로드 하셔야 합니다. (매뉴얼 참고)
해당 라이브러리 샘플 보시면 충분히 하실 수 있는 작업입니다.