Laravel-excel: ๋‹ค๋ฅธ ์‹œํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ˆ˜์‹์„ ํ‰๊ฐ€ํ•  ๋•Œ [๋ฒ„๊ทธ] ์˜ค๋ฅ˜

์— ๋งŒ๋“  2019๋…„ 08์›” 23์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Maatwebsite/Laravel-Excel

์ฝ์–ด์ฃผ์„ธ์š” : ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค! ์ •๋ณด๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๋ฌธ์ œ๋Š” ์„ ํƒ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์Šˆ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์ง€ ์•Š์€ ์ด์Šˆ๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Laravel-Excel์˜ ๊ธฐ์—ฌ ์ง€์นจ (https://laravel-excel.maatwebsite.nl/docs/3.1/getting-started/contributing) ๋ฐ ํ–‰๋™ ๊ฐ•๋ น (https://github.com/Maatwebsite/Laravel-Excel/)์„ ์ฝ์—ˆ์Šต๋‹ˆ๊นŒ? blob / 3.1 / CODE_OF_CONDUCT.md)? ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์กด์ค‘ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ค€์ˆ˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์•ž์— [BUG]๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.

์ „์ œ ์กฐ๊ฑด

๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•œ ๊ฒฝ์šฐ ๋Œ€๊ด„ํ˜ธ ์‚ฌ์ด์— X๋ฅผ ๋„ฃ์œผ์‹ญ์‹œ์˜ค.
  • [x] Laravel Excel ๋ฒ„์ „์ด ์—ฌ์ „ํžˆ ์ง€์›๋˜๋Š”์ง€ ํ™•์ธ : https://docs.laravel-excel.com/3.1/getting-started/support.html#supported -versions
  • [] ์ฝ”๋“œ ์™ธ๋ถ€์—์„œ ๋™์ž‘์„ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ๋Š” ๋ฌธ์ œ๋Š” Laravel Excel๋กœ ๊ฒฉ๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • [x] ๋ฌธ์ œ๊ฐ€ ์ด๋ฏธ ์ œ์ถœ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x]์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” PR์ด ์ œ์ถœ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x] ์ „์ฒด ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ ์ž‘์„ฑ

๋ฒ„์ „

๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ฆ๋ช…ํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ํ•œ ์ •ํ™•ํ•˜๊ณ  ์™„์ „ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • PHP ๋ฒ„์ „ : 7.1.28
  • ๋ผ ๋ผ๋ฒจ ๋ฒ„์ „ : 5.6.39
  • ํŒจํ‚ค์ง€ ๋ฒ„์ „ : 3.1.15

๊ธฐ์ˆ 

์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  WithCalculatedFormulas ํŠน์„ฑ์„ ํฌํ•จ ํ•  ๋•Œ =metadata!B10 ์ˆ˜์‹์ด์žˆ๋Š” ์…€ (์ฆ‰, ๋‹ค๋ฅธ ์›Œํฌ ์‹œํŠธ ์ฐธ์กฐ)์ด ํ‰๊ฐ€ ๋  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

null์—์„œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ has () ํ˜ธ์ถœ

์ „์ฒด ์Šคํƒ ์ถ”์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์…€์ด ํ‰๊ฐ€๋˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ์‹œํŠธ์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Sheet->disconnect() ๋‚ด์˜ ์ฝ”๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ์ด ์˜์‹ฌ์„ ํ™•์ธํ–ˆ์œผ๋ฉฐ ๊ทธ ํ›„์— ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ˆ˜์ž…์—…์ž๊ฐ€ WithMultipleSheets ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋‹ค๋ฅธ ์ˆ˜์ž…์—…์ž๋กœ๋ถ€ํ„ฐ ์‹คํ–‰๋˜๊ณ  ๋‘ ๋ฒˆ์งธ ์‹œํŠธ๋กœ ์ด๋™ํ•  ๋•Œ ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ž…์—…์ž์˜ ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„

์ฒซ ๋ฒˆ์งธ ์‹œํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ˆ˜์‹์ด ํฌํ•จ ๋œ tracks!G2 ์…€์ด์žˆ๋Š” ์ž˜๋ชป๋œ ์‹œํŠธ๊ฐ€ ์ฒจ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

bundle-metadata-reference.xlsx

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘ :

์‹œํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™ :

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ •๋ณด

์Šคํƒ ์ถ”์  :

#0 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(3870): PhpOffice\\PhpSpreadsheet\\Worksheet\\Worksheet->cellExists('B10')
#1 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(2944): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->processTokenStack(Array, 'G2', Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell))
#2 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Calculation\/Calculation.php(2734): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->_calculateFormulaValue('metadata!B10', 'G2', Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell))
#3 \/var\/www\/vendor\/phpoffice\/phpspreadsheet\/src\/PhpSpreadsheet\/Cell\/Cell.php(262): PhpOffice\\PhpSpreadsheet\\Calculation\\Calculation->calculateCellValue(Object(PhpOffice\\PhpSpreadsheet\\Cell\\Cell), true)
#4 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Cell.php(61): PhpOffice\\PhpSpreadsheet\\Cell\\Cell->getCalculatedValue()
#5 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Row.php(65): Maatwebsite\\Excel\\Cell->getValue(NULL, true, false)
#6 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Sheet.php(283): Maatwebsite\\Excel\\Row->toArray(NULL, true, false)
#7 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Sheet.php(245): Maatwebsite\\Excel\\Sheet->toArray(Object(Wata\\Upload\\Imports\\AlbumTracksImport), 2, NULL, true)
#8 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Reader.php(111): Maatwebsite\\Excel\\Sheet->import(Object(Wata\\Upload\\Imports\\AlbumTracksImport), 2)
#9 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Concerns\/ManagesTransactions.php(29): Maatwebsite\\Excel\\Reader->Maatwebsite\\Excel\\{closure}(Object(Illuminate\\Database\\MySqlConnection))
#10 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Transactions\/DbTransactionHandler.php(30): Illuminate\\Database\\Connection->transaction(Object(Closure))
#11 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Reader.php(115): Maatwebsite\\Excel\\Transactions\\DbTransactionHandler->__invoke(Object(Closure))
#12 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Excel.php(146): Maatwebsite\\Excel\\Reader->read(Object(Wata\\Upload\\Imports\\AlbumBundleImport), '\/tmp\/reqfile_Jj...', 'Xlsx', NULL)
#13 \/var\/www\/vendor\/maatwebsite\/excel\/src\/Concerns\/Importable.php(37): Maatwebsite\\Excel\\Excel->import(Object(Wata\\Upload\\Imports\\AlbumBundleImport), '\/tmp\/reqfile_Jj...', NULL, 'Xlsx')
#14 \/var\/www\/app\/Wata\/Upload\/BundleService.php(60): Wata\\Upload\\Imports\\AlbumBundleImport->import('\/tmp\/reqfile_Jj...', NULL, 'Xlsx')
#15 \/var\/www\/app\/Http\/Controllers\/Upload\/BundleController.php(70): Wata\\Upload\\BundleService->buildBundleFromExcelFileRequest(Object(Wata\\Upload\\Requests\\ExcelFileRequest), 's3')
#16 [internal function]: App\\Http\\Controllers\\Upload\\BundleController->store(Object(Wata\\Upload\\Requests\\ExcelFileRequest))
#17 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Controller.php(54): call_user_func_array(Array, Array)
#18 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('store', Array)
#19 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\Upload\\BundleController), 'store')
#20 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php(169): Illuminate\\Routing\\Route->runController()
#21 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(665): Illuminate\\Routing\\Route->run()
#22 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#23 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/ThrottleRequests.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#24 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 1000, '1')
#25 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#27 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Auth\/Middleware\/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#30 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#31 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#33 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#36 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 \/var\/www\/app\/Http\/Middleware\/Localisation.php(38): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#39 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): App\\Http\\Middleware\\Localisation->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 \/var\/www\/app\/Http\/Middleware\/ConvertToApiResponse.php(20): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#42 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): App\\Http\\Middleware\\ConvertToApiResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#45 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(667): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#46 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(642): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#47 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(608): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#48 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php(597): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#49 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#50 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#51 \/var\/www\/vendor\/fideloper\/proxy\/src\/TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#52 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#54 \/var\/www\/vendor\/barryvdh\/laravel-cors\/src\/HandleCors.php(36): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#55 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Barryvdh\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#58 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#59 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#60 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#61 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#62 \/var\/www\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#63 \/var\/www\/public\/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#64 {main}"]

๋ชจ๋“  10 ๋Œ“๊ธ€

https://github.com/Maatwebsite/Laravel-Excel/issues/2392 ์˜ ๋ณต์ œ๋ณธ์ฒ˜๋Ÿผ

@patrickbrouwers ์ด ์˜ˆ์™ธ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Call to a member function has() on null ํ•œ ์‹œํŠธ๊ฐ€ ์…€ ์ˆ˜์‹์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์‹œํŠธ๋ฅผ ์ฐธ์กฐ ํ•  ๋•Œ.

๋ฆด๋ฆฌ์Šค ๋Œ€์‹  ์ตœ์‹  3.1 ๋ธŒ๋žœ์น˜๋ฅผ ํ•„์š”๋กœํ–ˆ์ง€๋งŒ PR์€์ด ํŠน์ • ๋ฌธ์ œ์— ์•„๋ฌด๋Ÿฐ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๋Š๊ธฐ ํ˜ธ์ถœ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๋Š” OP๊ฐ€ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ž ์žฌ์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? DoesNotDisconnect ... ๊ทธ ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ญ”๊ฐ€? ๊ทธ๋Ÿฐ ๋‹ค์Œ ํŠน์ • ์‹œํŠธ์˜ ์—ฐ๊ฒฐ์„ ๋Š์ง€ ์•Š๋„๋ก ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ด๊ฒƒ์€ ๋” ํฐ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ReadChunk ์ž‘์—…์„ ๋ณ€๊ฒฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@ plogic-aaron ์ด์ „์— ๋งํ–ˆ๋“ฏ์ด ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

@patrickbrouwers ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ๋งํ–ˆ๋“ฏ์ด ์ตœ๊ทผ ์ปค๋ฐ‹์—์„œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด 3.1 ๋ถ„๊ธฐ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ๋ถ„๊ธฐ์— ๋ณ‘ํ•ฉ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘ : ์‹œํŠธ 2 (์‹œํŠธ 1 ์ฐธ์กฐ)๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ๋˜๋„๋ก ๊ฐ€์ ธ ์˜ค๊ธฐ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‘˜ ๋‹ค ์ฒซ ๋ฒˆ์งธ ์—ฐ๊ฒฐ ํ•ด์ œ ํ˜ธ์ถœ ์ „์—๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ์ฐธ์กฐ ๊ฐ’์ด ํŒŒ์ผ์— ์บ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํ•ด์ œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ์„ค์ •์ด ์žˆ์–ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ํ™๋ณดํ•˜์„ธ์š”

์•ˆ๋…•ํ•˜์„ธ์š” @patrickbrouwers , @ eprop-aaron ๋ฐ @ archy-bold์˜ ๋™์ผํ•œ ๋ฌธ์ œ๋Š” # 2392์™€ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ 3.1.18 ๋ฆด๋ฆฌ์Šค์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์•„๋ฌด๋„ ์•„์ง ํ™๋ณดํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š”์ด ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜์Œ ์ ‘ํ–ˆ์ง€๋งŒ์ด ๋ฌธ์ œ๋ฅผ ๊ณ ์น  ์ปค๋ฐ‹์ด ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/jpagarcia/Laravel-Excel

@jpagarcia ๊ทธ ์ปค๋ฐ‹์—์„œ PR์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰