为什么 Laravel-Excel 读取第一行作为列名
Why Laravel-Excel reads first row as column name
我需要读取一个 .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"
]
}
]
}
看,我不想将第一行值算作列名!
任何帮助将不胜感激。
您在文档中链接了答案
Table heading as attributes
By default the first row of the excel file will be used as attributes.
You can change the default inside the config excel::import.heading. Available options are: true|false|slugged|ascii|numeric|hashed|trans|original
我从未使用过 laravel,只是将其设置为 false 并检查会发生什么。
您需要遍历每一行。之后,您可以在遍历所有列时创建自定义数组
Excel::load('sample.xls', function($reader) {
$reader->each(function($sheet) {
// Loop through all rows
$sheet->each(function($row) {
// Loop through all columns
});
});
})
这只是 excel 导入的基本代码,您需要根据您的示例进行调整。
希望对您有所帮助
By default the first row of the Excel file will be used as attributes
所以,我推荐使用noHeading
函数:
Excel::load('sample.xls', function($reader) {
$reader->noHeading();
$reader->dd();
});
我需要读取一个 .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"
]
}
]
}
看,我不想将第一行值算作列名!
任何帮助将不胜感激。
您在文档中链接了答案
Table heading as attributes By default the first row of the excel file will be used as attributes.
You can change the default inside the config excel::import.heading. Available options are: true|false|slugged|ascii|numeric|hashed|trans|original
我从未使用过 laravel,只是将其设置为 false 并检查会发生什么。
您需要遍历每一行。之后,您可以在遍历所有列时创建自定义数组
Excel::load('sample.xls', function($reader) {
$reader->each(function($sheet) {
// Loop through all rows
$sheet->each(function($row) {
// Loop through all columns
});
});
})
这只是 excel 导入的基本代码,您需要根据您的示例进行调整。
希望对您有所帮助
By default the first row of the Excel file will be used as attributes
所以,我推荐使用noHeading
函数:
Excel::load('sample.xls', function($reader) {
$reader->noHeading();
$reader->dd();
});