我需要读取.xls
文件并将其放入数组中。我正在使用laravel-excel包来读取excel文件。
我有一个像这样的Excel文件:
我需要这样一个数组:
[
'9921234567' => 'First Text',
'9929876544' => 'Second Text',
'9927654321' => 'Third Text',
'9928765432' => 'Fourth Text',
]
到目前为止我尝试了什么:
Excel::load('sample.xls', function($reader) {
$reader->dd();
});
问题:
问题是它将第一行读为列!
0 => RowCollection {#619
#title: "Sheet1"
#items: array:3 [
0 => CellCollection {#623
#title: null
#items: array:2 [
9921234567 => 9929876544.0
"first_text" => "Second Text"
]
}
1 => CellCollection {#624
#title: null
#items: array:2 [
9921234567 => 9927654321.0
"first_text" => "Third Text"
]
}
2 => CellCollection {#625
#title: null
#items: array:2 [
9921234567 => 9928765432.0
"first_text" => "Fourth Text"
]
}
]
}
看,我不希望第一行值计为列名!
任何帮助都会非常感激。
答案 0 :(得分:6)
您在文档中链接了答案
表标题作为属性 默认情况下,excel文件的第一行将用作属性。
您可以更改config excel :: import.heading中的默认值。可用选项包括:true | false | slugged | ascii | numeric | hashed | trans | original
我从未使用过laravel,只是将其设置为false并检查会发生什么。
答案 1 :(得分:0)
你需要循环每一行。之后,您可以在循环遍历所有列时创建自定义数组
Excel::load('sample.xls', function($reader) {
$reader->each(function($sheet) {
// Loop through all rows
$sheet->each(function($row) {
// Loop through all columns
});
});
})
这只是excel导入的基本代码,您需要根据自己的示例进行调整。
希望有所帮助
答案 2 :(得分:0)
默认情况下,Excel文件的第一行将用作属性
因此,我建议使用Excel::load('sample.xls', function($reader) {
$reader->noHeading();
$reader->dd();
});
函数:
function initMenu()
{
if($('.hamburger').length && $('.menu').length)
{
var hamb = $('.hamburger');
hamb.on('click', function()
{
if(!menuActive)
{
openMenu();
}
else
{
closeMenu();
}
});
}
}
function openMenu()
{
menu.addClass('active');
menuActive = true;
}
function closeMenu()
{
menu.removeClass('active');
menuActive = false;
}