λλ λ©°μΉ λμ μ΄κ²μΌλ‘ λμμ§λ§ λ¨μν μλνκ² λ§λ€ μ μμ΅λλ€. λ΄ λ°μ΄ν°λ² μ΄μ€μ κΈ΄ μ«μ(16μ리)κ° μ μ₯λμ΄ μλλ° toArray() ν¨μλ₯Ό μ¬μ©νμ¬ xlsx Excel μ€νλ λμνΈλ₯Ό λ§λλλ€. μ΄ νμμ μ§μ νλ λ° μ¬μ©νλ μ½λ:
$sheet->setColumnFormat(array( 'A' => '@' ));
κ·Έλ¬λ μ«μλ Excelμμ μ«μλ‘ νμλλ©° κ³Όνμ νκΈ°λ²μΌλ‘ λ¨μΆλ©λλ€.
μμͺ½μ 곡백μ μΆκ°νλ κ² μΈμ μ΄ λ¬Έμ μ λν΄ ν μ μλ μΌμ΄ μμ΅λκΉ?
λλ Excelμ 15μ리 μ νμ μκ³ μμ§λ§ ν μ€νΈλ‘ μμμ μ§μ ν λ μ΄κ²μ΄ λ¬Έμ κ° λμ§ μμ κ²μ΄λΌκ³ λ―Ώκ² λμμ΅λλ€.
μ¬κΈ°μμλ κ°μ λ¬Έμ μ΄μ§λ§ μ κ²½μ°μλ 14μ리 λ¬Έμμ΄μ λλ€.
Excelμμ κΈ΄ μ«μμ λν κ³Όνμ νκΈ°λ²μ νΌνλ €λ©΄ ν΄λΉ κ°μ μ«μλ‘ λͺ
μμ μΌλ‘ νμνλ νμ λ§μ€ν¬λ₯Ό μ€μ ν΄μΌ ν©λλ€..... @
λ₯Ό μ¬μ©νλ κ²μ λ¨μν κΈ°λ³Έ λμμ μ¬μ©νλλ‘ MS Excelμ μ§μνλ κ²μ
λλ€. (μ΄κ²μ λ κΈ΄ μ«μμ λν΄ κ³Όνμ νμμ μ¬μ©νλ κ²μ
λλ€).... λμ #0
μ νμ λ§μ€ν¬λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
κ·Έλλ μλνμ§ μμ΅λλ€. μ΄κ²μ λ΄κ° μλν κ²μ λλ€ : $sheet->setColumnFormat(['id'=> '#0']);. λλ λν μ¬λ¬ νμμ μλνμ§λ§ μ€μ λ‘ μ΄ νμμ μν₯μ λ―ΈμΉμ§ μμκΈ° λλ¬Έμ setColumnFormatμ΄ CSVμ μ μλνμ§ μλλ€κ³ μκ°ν©λλ€.
μ΄κ²μ΄ μ°¨μ΄λ₯Ό λ§λλμ§ λͺ¨λ₯΄κ² μ§λ§ μ λ $sheet->fromModel($result); $sheet->fromArray($result->toArray()) μλνλλ° λ λ€ μ΄ λ¬Έμ κ° λ°μνμ΅λλ€.
CSVμ μ΄ λ¬Έμ κ° μλ μ¬λλ€μ μν΄ λ€μ λ°©λ²μ λ§λ€μμ΅λλ€.
κ³΅κ° ν¨μ getStringIdAttribute()
{
return '="' . $this->id . '"';
}
λ΄ λͺ¨λΈ μλ¨μ λ€μμ μΆκ°νμ΅λλ€.
보νΈλ $appends = ['string_id'];
κ·Έλ¦¬κ³ κ·Έ μ«μκ° Excel(Kingsoft μ€νλ λμνΈ λΏλ§ μλλΌ)μ ν μ€νΈλ‘ νμλλλ‘ νμ΅λλ€.
CSVλ‘ μμ±νκ³ Excelμ ν΅ν΄ 보λ κ²½μ° CSVλ νμ λ§μ€ν¬λ₯Ό μ μ₯νμ§ μμΌλ©° Excelμ κΈ°λ³Έ νμ(λ ν° κ°μ κ²½μ° κ³Όνμ )μ μ¬μ©νμ¬ κ²°κ³Όλ₯Ό μ«μλ‘ νμν©λλ€.....νμ λ€μμ μ¬μ©νμ¬ CSVλ₯Ό νμΈν©λλ€. ν μ€νΈ νΈμ§κΈ°
μ΄ νμμΌλ‘ "#0"μ μ¬μ©νμ¬ νμΌμ λ΄λ³΄λ΄λ €κ³ μλνμ§λ§ λ§μ§λ§ μ«μκ° 0μΌλ‘ λ³νλ©λλ€. @κ° 'κΈ°λ³Έκ°'μ μλ³μμΈ κ²½μ° Excelμ΄ μ무 κ²λ 건λλ¦¬μ§ μλλ‘ μ μ ν μ€νΈλ‘ λμ΄νλ λ°©λ²μ 무μμ λκΉ? ?
νμ¬ λ΄ ν΄κ²° λ°©λ²μ laravel-excelμμ csvλ‘ λ΄λ³΄λ΄κ³ μμΌλ©° openpyxlμ΄ ν μ€νΈλ‘ μ¬λ°λ₯΄κ² νμμ μ§μ ν μ μλ κ²μ²λΌ xlsxλ‘ λ΄λ³΄λ΄κΈ° μν΄ μμ±ν Python μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
μ΄ λμμ λν μμ μ¬νμ΄ μμ΅λκΉ? Excelμμ μ«μ "10"μΌλ‘ λ΄λ³΄λ΄λ "10E00"κ³Ό κ°μ λ¬Έμμ΄μ΄ μλ λ°°μ΄μμ XSLXλ‘ λ΄λ³΄λ΄κ³ μμ΅λλ€. setColumnFormat "@"κ° μλνμ§ μμ΅λλ€...
@lachyn μμμ λ§νλ―μ΄ λ΄κ° μ¬μ©ν ν΄κ²° λ°©λ²μ from laravel CSVλ‘ λ΄λ³΄λΈ λ€μ μ Έ λͺ λ Ήμ μ€ννμ¬ μΆλ ₯μ python μ€ν¬λ¦½νΈλ‘ xlsxλ‘ λ³ννλ κ²μ΄μμ΅λλ€.
@lszanto νμ§λ§ μ΄κ²μ μ΄μν©λλ€. "CSV"λ‘ λ΄λ³΄λ΄λλΌλ "10E00" λμ "10" κ°μ΄ μκ³ λ΄ λ°°μ΄μ λ¬Έμμ΄ "10E00"μ΄ μλ€κ³ νμ ν©λλ€....
@lachyn CSVλ₯Ό μ¬λ λ°©λ²μ 무μμ λκΉ? κ·Έκ²μ΄ λ¨μ§ ν μ€νΈ νΈμ§κΈ°λΌλ©΄ CSVκ° μμ μ λλ μ무κ²λ μλ μμ μΆλ ₯μ΄μ΄μΌ νλ―λ‘ laravelμ΄ λ€λ₯Έ κ²μ λ§μ§κ³ μμ μ μμ΅λλ€.
μνλ λ°μ΄ν°κ° λΉκ³΅κ°κ° μλ κ²½μ° μνμ κ²μν μ μμΌλ©° κΈ°νκ° μμ λ μλν΄ λ³΄κ² μ΅λλ€.
@lszanto μκ³ ν ν
μ€νΈ νΈμ§κΈ°...
λ§μ§λ§μ toArray()λ‘ μΏΌλ¦¬λ₯Ό μννκ³ μμ΅λλ€. μ΄ λ°°μ΄μ λ€ννλ©΄ "10E00"μΌλ‘ λ΄λ³΄λ΄κΈ° ν... "10"μ΄ λ©λλ€. λ΄λ³΄λ΄κΈ°λ μ΄ λ°°μ΄μμ μ΄λ£¨μ΄μ§λ―λ‘ λͺ¨λ mutatorsλ 쿼리μμ μ΄λ£¨μ΄μ§λλ€.... λ°λΌμ λ΄λ³΄λ΄κΈ° μ€μ λ³κ²½ν΄μΌ ν©λλ€.
@lszanto μλ§ μ΄ λ¬Έμ μ μμΈμ μ°Ύμμ κ²μ λλ€. λ΄ λ΄λ³΄λ΄κΈ°μμ ν€λ νμ μ κ±°νλ κ²½μ°
$sheet->prependRow(..)
μ΄μ μμλλ‘ μλν©λλ€.... κ·Έλμ μλ§λ μ΄ κΈ°λ₯μ νμμ κΉ¨λ¨λ¦΄ κ²μ λλ€. λͺ¨λΈ λλ λ°°μ΄μμ μνΈ μμ±μ μλνμ§λ§ λμΌν κ²°κ³Όλ₯Ό μ»μμ΅λλ€.
Excel::create('sklad_vyrobku-'.date('d-m-Y', time()), function($excel) use ($table) {
$excel->sheet('Sklad vyrobku k '.date('d-m-Y', time()), function($sheet) use ($table) {
$sheet->fromModel($table, null, 'A1', false, false);
$sheet->prependRow(array('id','kod','...'));
$sheet->setColumnFormat(array('B'=>'@','C'=>'@','D'=>'@','E'=>'@'));
});
})->download('xlsx');
κ°μ λ¬Έμ (Laravel 4.2)κ° μμμ§λ§ $excel->sheet ν¨μ ν΄λ‘μ λ₯Ό μ° μ§ν setColumnFormat μ νΈμΆνμ¬ ν΄κ²°νμ΅λλ€.
κ·Έλμ μ λ μ΄κ²μ΄ λ²κ·ΈλΌκ³ μκ°νμ§ μμ΅λλ€. λ¨μ§ λ
Όλ¦¬μ μΈ μ κ·Ό λ°©μμΌ λΏμ
λλ€.
μμ:
$excel->sheet("FooBar", function($sheet) use ($x, $y, $z) {
$sheet->setColumnFormat(array(
"G:H" => "@",
"Z" => "@",
'AH:AI' => '0',
"AO:BB" => "h:mm",
"BE:BR" => "h:mm",
));
...
});
λλ μ¬μ νμ΄ λ¬Έμ κ° μμκ³ μμ μ루μ
μ€ μ΄λ κ²λ λλ₯Ό μν΄ μΌνμ§ μμμ΅λλ€. λ°°μ΄μμ λ΄ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ μμκ³ κ±°κΈ°μ μλ λͺ¨λ κ°μ΄ strings
μμ§λ§ setColumnFormat
κ° μ¬μ ν μμ
μ μννκ³ μ
μ Number Format
λ‘ λ³νν κ²μ΄λΌκ³ μκ°νμ΅λλ€. νμ§λ§ κ·Έλ μ§ μμμ΅λλ€.
λ΄κ° ν΄κ²°ν λ°©λ²μ fromArray
λ©μλλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μνΈλ‘ κ°μ Έμ€κΈ° μ μ λ΄ λ°°μ΄μ λͺ¨λ κ°μ float/intλ‘ μ ν λ³ννλ κ²μ
λλ€.
λ°λΌμ μ무 κ²λ μλνμ§ μμΌλ©΄ μνΈμ μ½μ νκΈ° μ μ κ°μ Έμ€λ λ°μ΄ν°κ° μ¬λ°λ₯Έ μ νμΈμ§ νμΈνμμμ€. μ΄κ²μ΄ λκ΅°κ°λ₯Ό λκΈ°λ₯Ό λ°λλλ€ :)
setCellValueExplicit() μ μ¬μ©νμ¬ ν΄κ²° λ°©λ²μ μ°Ύμμ΅λλ€.
μ:
$sheet->setColumnFormat(array( //se formatea la columna a texto
'C' => \PHPExcel_Style_NumberFormat::FORMAT_TEXT,
'I' => 'dd-mm-yyyy hh:mm'
));
$sheet->setCellValueExplicit('C10', $object->card_number, \PHPExcel_Cell_DataType::TYPE_STRING);
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€ ;)
$excel->sheet('staff', ν¨μ($sheet) μ¬μ©($data) {
$sheet->setColumnFormat(λ°°μ΄(
'ν' => '@',
));
$sheet->rows($data,true);
});
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€ ;)
μ¬μ ν κ°μ λ¬Έμ κ° μμ΅λλ€. μ€μ λ‘ νμ(κΈκΌ΄)μ λ³κ²½λμ§λ§ λ°μ΄ν° νμμ λ³κ²½λμ§ μμ΅λλ€.
λ²κ·Έμ λκΉ μλλ©΄ μ κ° μλͺ»νκ³ μμ΅λκΉ?
@minkadev
$sheet->rows($data, true)
λ λͺ¨λ κ·μΉμ "λͺ
μμ "μΌλ‘ μΆκ°ν©λλ€. μ¦, λ¬Έμμ΄λ‘ μΆκ°λλ―λ‘ μ΄ νμμ΄ λ¬΄μλ©λλ€.
@patrickbrowers κ°μ¬ν©λλ€.
λλ λν λ€μκ³Ό κ°μ΄ μλν©λλ€.
$sheet->fromArray($data, null, 'A1', false, false);
κ·Έκ²μ΄ μλνμ§ μλ μ΄μ λ₯Ό μ°Ύμμ΅λλ€. μ μΆκ°λμλμ§ νμ€νμ§ μμ΅λλ€. https://github.com/Maatwebsite/Laravel-Excel/blob/2.1/src/Maatwebsite/Excel/Classes/LaravelExcelWorksheet.php#L1262 It μ«μ λ° μ μλ "λ¬Έμμ΄" κ°μΌλ‘ μΆκ°ν©λλ€.
κ·Έλμ μλνμ§ μμ΅λλ€? :(
λͺ
μμ μΈ $sheet->rows($data, true);
λ₯Ό trueλ‘ μ€μ νμ§ λ§μμμ€.
μ¬μ©νλ€:
$sheet->rows($data);
$sheet->fromArray($data, null, 'A1', false, false);
λμκ²λ μ μλν©λλ€.
κ·Έλλ μλμ΄ μλλ. λν λ€μμ μ¬μ©νμ¬ μ΄ νμμ μ§μ νλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
$sheet->fromArray($data, null, 'A1', false, false);
$sheet->rows($data);
κ° ν¬ν¨λ μμ μ½λλ μ μλν©λλ€. Excelμμ μ΄ λ μ΄ μμμ΄ μ νν©λλ€.
μ΄μ νλ€. κ·Έλλ μλμ΄ μλλ:
μ¬λ°λ₯Έ λ²μ μ΄ μμ΅λκΉ? (v2.1.16)
λꡬ?.. μμ§λμ΄ λ¬Έμ κ° μμ΅λλ€ ...
Laravel 5.3, maatwebsite/excel 2.1.12
λ€μ λ κ°μ§ λ³κ²½ μ¬νμΌλ‘ μλνλλ‘ ν μμμμ΅λλ€.
μ΅κ·Όμμ΄ λ¬Έμ κ° λ°μνμ΅λλ€. setColumnFormat
λ°©λ²μ μ¬μ©νλ €κ³ νμ§λ§ μλνμ§ μμ΅λλ€.
μ΄κ²μ΄ λ΄ ν΄κ²° λ°©λ²μ
λλ€.
foreach (...) {
$sheet->row($row, [
/* Your Data */
]);
$sheet->setCellValueExplicitByColumnAndRow($column, $row, $value, \PHPExcel_Cell_DataType::TYPE_STRING);
}
$column
λ° $row
μ λ©λͺ¨ μ νμ integer
μ΄λ©° μ¬κΈ°λ₯Ό μ°Έμ‘°νμμμ€ .
Laravel 5.1, maatwebsite/excel 2.1.0
μ«μλ₯Ό float λλ intλ‘ μΊμ€ν
νλ κ²λ§μΌλ‘ μλνκ² λ§λ€ μ μμμ΅λλ€.
:(
κ·Έλμ λλ κ·Έκ²μ λ¬μ±νκΈ° μν΄ λͺ¨λ νμ λν΄ λ°λ³΅ν΄μΌν©λλ€.
λνμ΄ λ¬Έμ κ° λ°μν©λλ€. μ λ°μ΄νΈκ° μμ λμ΄ μμ΅λκΉ?
νΈμ§ : @neighborhood999μ ν΄κ²° λ°©λ²μΌλ‘λ μμ λμμ΅λλ€.
μ¬κΈ°μ μλ λͺ¨λ μνμ Excelλ‘ λ΄λ³΄λ΄κΈ°μ λν΄ μ΄μΌκΈ°νκ³ μμ΅λλ€.Excel μνμμ κ°μ Έμ€κΈ°λ μ΄λ»μ΅λκΉ
κ°->imei_1 = 356803081142590;
νμ§λ§ κ²°κ΅ imei_1μ "3.5680308104231E+14"λ‘ μ»μ΅λλ€.
<?php
$path = $request->file('excel')->getRealPath();
$data = Excel::load($path, function ($reader) {
})->get(['brand', 'model', 'batch', 'imei_1', 'imei_2']);
if (!empty($data) && $total = $data->count()) {
foreach ($data as $key => $value) {
$insert[] = ['brand' => $value->brand,
'model' => $value->model,
'batch' => $request->batch ? $request->batch : $value->batch,
'imei_1' => strval($value->imei_1),
'imei_2' => strval($value->imei_2),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
];
}
/*if (!empty($insert)) {
Device::insert($insert);
// dd('Insert Record successfully.');
}*/
}
@ Ra1da35ma κ°μ λ¬Έμ κ° λ°μν©λλ€. μ΄κ²μΌλ‘ μ무 λ°λ μ»μμ΅λκΉ?
μ¬μ©μ μ§μ κ° λ°μΈλλ₯Ό μ€μ νλ €κ³ μλνμ§λ§ μ μ λ°μΈλ©λλ κ°μ΄ μ΄λ―Έ κ³Όνμ νκΈ°λ²μΌλ‘ λμ΄ μκΈ° λλ¬Έμ μλνμ§ μμ΅λλ€. μλ°ν κ°μ λ¬Έμ κ° μλκΈ° λλ¬Έμ μ΄κ²μ μλνκ³ ν΄κ²°νκΈ° μν΄ λ€λ₯Έ λ¬Έμ λ₯Ό μ΄ ββμ μμ§λ§ λ λ§μ μ λ³΄κ° μκΈ°λ₯Ό λ°λλλ€.
ν΄κ²° λ°©λ²μ μ°Ύμμ΅λλ€. λ¬Έμ λ PHPμ PHPExcel_Calculation ν΄λμ€κ° μ½λ μ λ°λ .ini λ³μμ κ΄λ ¨μ΄ μμ΅λλ€. Laravel-Excel
ν¨ν€μ§λ μμ ν¨ν€μ§μΈ PHPExcelμμ μ΄λ₯Ό μ¬μ μν μ μμ΅λλ€. λμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Excel λ‘λ κΈ°λ₯μ νΈμΆνκΈ° μ μ ini_set('precision', 20)
λ₯Ό μΆκ°νμ΅λλ€.
μ΄κ²μ λ΄ κΈ°λ₯μ λλ€.
public function getXlsxFile($filePath)
{
ini_set('precision', 18);
$collection = Excel::load($filePath);
return $collection->get();
}
μ΄κ²μ΄ laravel 5.1μμ μλνλ λ°©μμ λλ€.
$myFile= Excel::create($filename, function($excel) use($array) {
$excel->setTitle('μ λͺ©');
$excel->sheet('μνΈ 1', function($sheet) use($array) {
$sheet->setColumnFormat(array('B'=>'0'));
$sheet->setColumnFormat(array('C'=>'0'));
$sheet->setColumnFormat(array('D'=>'0'));
$sheet->setColumnFormat(array('E'=>'0'));
$sheet->rows($array,false);
//μ»¬λΌ μ΄λ¦ μ€μ
$sheet->prependRow(λ°°μ΄(
'μ΄ μ΄λ¦ 1', 'μμ 1', 'μμ 2', 'μμ 3', 'μ΄κ³'
));
});
});
λ²μ 2.*κ° λ¨μ’ λ¨κ³μ λλ¬νκΈ° λλ¬Έμ λͺ¨λ κΈ°μ‘΄ ν°μΌμ λ«μ΅λλ€. μ°λ¦¬μ λͺ¨λ κ΄μ¬μ μ΄μ λ²μ 3.0μ ν λΉλ©λλ€. μ¬μ ν 2.*λ₯Ό μ¬μ©ν μ μμ§λ§ λ μ΄μ νμ± μ§μμ΄ μμ΅λλ€.
κ°μ μ μλ‘ μΊμ€ν νλ κ²μ΄ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
μ΄κ²μ΄ μ΅μ μ λ΅λ³μ
λλ€. λ³μλ₯Ό ->fromArray
λ©μλμ μ λ¬νκΈ° μ μ λ°°μ΄μ μΊμ€νΈλ₯Ό μ
λ ₯νμμμ€. μ:
$local_order['Quantity'] = (int) $item->quantity;
$local_order['Price'] = (float) $item->price;
κ°μ₯ μ μ©ν λκΈ
$excel->sheet('staff', ν¨μ($sheet) μ¬μ©($data) {
$sheet->setColumnFormat(λ°°μ΄(
'ν' => '@',
));
$sheet->rows($data,true);
});
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€ ;)