Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
http://www.maatwebsite.nl/laravel-excel/docs
кто нибудь использовал это?
мне нужно импорт/экспорт Excel файла а так же показать и возможность редактировать, у кого нибудь встречалась такая задача ?
Не в сети
Так что ни кто не может помочь?
Не в сети
public function actionIndex()
{
Excel::load('public/upload/raim.xls', function($reader)
{
$result=$reader->select(array('data', 'name','operatory'))->get();
//var_dump($result);
})->get();
}
тут получается я открыл xls и выбрал нужные поля
как теперь их записать в таблицу из бд?
например из формы делается же так
public function postAdd() {
$data = Input::all();
$post = SomeModel::create($data);
}
Не в сети
Это засунуть в модель
public function postAdd($exelData)
{
$post = SomeModel::create([
'data' => $exelData['data'],
'name' => $exelData['name'],
'operatory' => $exelData['operatory']
]);
}
это в контроллер
public function actionIndex(){
Excel::load('public/upload/raim.xls', function($reader){
$result=$reader->select(array('data', 'name','operatory'))->get();
})->get();
$res = Model::postAdd($retust);
return $res
}
Это засунуть в модель
public function postAdd($exelData) { $post = SomeModel::create([ 'data' => $exelData['data'], 'name' => $exelData['name'], 'operatory' => $exelData['operatory'] ]); }
это в контроллер
public function actionIndex(){ Excel::load('public/upload/raim.xls', function($reader){ $result=$reader->select(array('data', 'name','operatory'))->get(); })->get(); $res = Model::postAdd($retust); return $res }
не работает
Не в сети
что я делаю не так ?
$dir = '/uploads'.date('/Y/m/d/');
do {
$filename = str_random(30).'.xls';
} while (File::exists(public_path().$dir.$filename));
Input::file('file')->move(public_path().$dir, $filename);
return Response::json(array('filelink' => $dir.$filename));
Excel::load(public_path().$dir.$filename, function($reader){
----------
}
Не в сети
что я делаю не так ?
$dir = '/uploads'.date('/Y/m/d/'); do { $filename = str_random(30).'.xls'; } while (File::exists(public_path().$dir.$filename)); Input::file('file')->move(public_path().$dir, $filename); return Response::json(array('filelink' => $dir.$filename)); Excel::load(public_path().$dir.$filename, function($reader){ ---------- }
понял что совсем ни то, как правильнее сразу лоадить файл без загрузки на серв
Изменено nemocoder (02.12.2014 08:46:47)
Не в сети
решение
роут
Route::post('/upload', 'ImportController@uploadFile');
контроллер
public function uploadFile()
{
$dir = '/uploads'.date('/Y/m/d/');
do {
$filename = str_random(30).'.xls';
} while (File::exists(public_path().$dir.$filename));
Input::file('file')->move(public_path().$dir, $filename);
Excel::load(public_path().$dir.$filename , function($reader)
{
$result = $reader->get();
do Something
})->get();
}
форма
{{ Form::open(array('url' => '/upload', 'action' => 'ImportController@uploadFile', 'method' => 'post', 'role' => 'form', 'class' => 'form-horizontal', 'files' => true)) }}
@include('temp/form')
<div class="form-group">
<div class="col-sm-2"> </div>
<div class="col-sm-5">
<button type="submit" class="btn btn-primary submit-button">Импорт</button>
</div>
</div>
{{ Form::close() }}
//form
{{ Form::label('file', 'Excel/XLS:') }}
{{ Form::file('file')}}
Не в сети
nemocoder, как в бд заносишь таблицу ? покажи код,тоже делаю такую фишку интересно.
Не в сети
nemocoder, как в бд заносишь таблицу ? покажи код,тоже делаю такую фишку интересно.
легко
контроллер
.......
Excel::load(public_path().$dir.$filename , function($reader)
{
$result = $reader->get();
foreach ($result as $key => $value) {
//для проверки можешь с перва вывести так посмотреть берутся ли значения
//echo $value->date.'----'.$value->name.'----'.$value->adress_to.'----'.$value->operator.'<br>';
//Model->твоя модель
$data = Model::postAdd($value);
}
})->get();
//return Redirect::to('/io')->with('success', 'You have been importing xls');
модель
protected $table = 'твоя таблица';
protected $fillable = array(
'date',
'name',
'adress_to',
'operator',
);
public static function postAdd($exelData)
{
$post = Import::create([
'date' => $exelData['date'],
'name' => $exelData['name'],
'adress_to' => $exelData['adress_to'],
'operator' => $exelData['operator']
]);
return $post;
}
Не в сети
Nelzz пишет:nemocoder, как в бд заносишь таблицу ? покажи код,тоже делаю такую фишку интересно.
легко
контроллер....... Excel::load(public_path().$dir.$filename , function($reader) { $result = $reader->get(); foreach ($result as $key => $value) { //для проверки можешь с перва вывести так посмотреть берутся ли значения //echo $value->date.'----'.$value->name.'----'.$value->adress_to.'----'.$value->operator.'<br>'; //Model->твоя модель $data = Model::postAdd($value); } })->get(); //return Redirect::to('/io')->with('success', 'You have been importing xls');
модель
protected $table = 'твоя таблица'; protected $fillable = array( 'date', 'name', 'adress_to', 'operator', ); public static function postAdd($exelData) { $post = Import::create([ 'date' => $exelData['date'], 'name' => $exelData['name'], 'adress_to' => $exelData['adress_to'], 'operator' => $exelData['operator'] ]); return $post; }
Спасибо. Кстати я тоже из Казахстана, Атырау
Не в сети
Спасибо. Кстати я тоже из Казахстана, Атырау
Круто) Я из Уральска, живу, работаю и учусь в Алмате
Не в сети
я попробовал импортировать файл прямо в routes.php и в результате на странице получил крякозябры
Route::get('xls', function ()
{
Excel::load('app/database/xls/categories.xlsx', function($reader)
{
$result=$reader->select(array('id', 'parent_id','level','title','sef','body',
'image','meta_title','keywords','description'))->get();
var_dump($result);
})->get();
}
);
Не в сети
по-моему вы занимаетесь какой-то фигней
всё вообще не так делается
<?php
class XLSSeeder extends Seeder {
public function run()
{
$xls = 'app/database/seeds/seeder.xlsx';
$book = Excel::load($xls, 'UTF-8')->all();
foreach($book as $sheet)
{
if ($sheet->getTitle() === 'categories')
{ Category::truncate();
foreach($sheet as $row)
{
$category = Category::create([
'id' => $row->id,
'parent_id' => $row->parent_id,
'level' => $row->level,
'title' => $row->title,
'sef' => $row->sef,
'body' => $row->body,
'image' => $row->image,
'metatitle' => $row->metatitle,
'metakey' => $row->metakey,
'metadesc' => $row->metadesc,
]);
}
}
if ($sheet->getTitle() === 'menu')
{ Menu::truncate();
foreach($sheet as $row)
{
$menu = Menu::create([
'id' => $row->id,
'parent_id' => $row->parent_id,
'level' => $row->level,
'title' => $row->title,
'route' => $row->route,
'class' => $row->class,
'metatitle' => $row->metatitle,
'metakey' => $row->metakey,
'metadesc' => $row->metadesc,
]);
}
}
}
}
}
Не в сети
по-моему вы занимаетесь какой-то фигней
всё вообще не так делается<?php class XLSSeeder extends Seeder { public function run() { $xls = 'app/database/seeds/seeder.xlsx'; $book = Excel::load($xls, 'UTF-8')->all(); foreach($book as $sheet) { if ($sheet->getTitle() === 'categories') { Category::truncate(); foreach($sheet as $row) { $category = Category::create([ 'id' => $row->id, 'parent_id' => $row->parent_id, 'level' => $row->level, 'title' => $row->title, 'sef' => $row->sef, 'body' => $row->body, 'image' => $row->image, 'metatitle' => $row->metatitle, 'metakey' => $row->metakey, 'metadesc' => $row->metadesc, ]); } } if ($sheet->getTitle() === 'menu') { Menu::truncate(); foreach($sheet as $row) { $menu = Menu::create([ 'id' => $row->id, 'parent_id' => $row->parent_id, 'level' => $row->level, 'title' => $row->title, 'route' => $row->route, 'class' => $row->class, 'metatitle' => $row->metatitle, 'metakey' => $row->metakey, 'metadesc' => $row->metadesc, ]); } } } } }
почему это, мой метод фигня ? делай как можешь а если не получилось так это не у меня руки сам понимаешь
Изменено nemocoder (16.02.2015 20:16:25)
Не в сети
Не в сети
Не в сети
}%Народ, с кодировкой есть решение?
Использовал dompdf в проектах, там тоже была проблема с кодировкой, пока не залил шрифты с поддержкой кириллицы
Изменено Artdevue (02.11.2015 01:49:53)
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
А как подключить шрифты? О_о
Не в сети
Страницы 1