2016-04-21 16 views
0

嗨,大家好,我正在使用PHPExcel读取xls文件。我使用这条线得到XLS数据阵列将阵列键更改为PHPExcel中的数字

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 

其工作正常,但给我的阵列是这样

Array 
(
    [1] => Array 
     (
      [A] => category_id (*) 
      [B] => category_name (*) 
      [C] => name_en (*) 
     ) 
) 

正如你可以看到它的puting键为字母而不是数字

 [A] => category_id (*) 
     [B] => category_name (*) 
     [C] => name_en (*) 

但我想我这样的数组有这样的数字键不是字母像

Array 
(
    [1] => Array 
     (
      [0] => category_id (*) 
      [1] => category_name (*) 
      [2] => name_en (*) 
     ) 
) 

还有就是这个数组转换为数字键

$type = array_values(array_map('array_values', $sheetData));

而是一种方法,我怎样才能获取数据,如使用PHPExcel我有搜索了很多,但没有发现任何解决这个数组。

+0

只是'$改编[1] = array_values($改编[1])'使索引数字 – splash58

回答

2

改变的最后一个参数错误得到数字索引

->toArray(null,true,true,false); 
+0

感谢您的帮助,工作完美... 其偏离主题的问题,但你能告诉我如何计算使用PHPExcel的所有xls文件中的所有行? – OBAID

+0

在回答你的新问题:'listWorksheetInfo()'[PHPExcel Docs](https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/ReadingSpreadsheetFiles/07-Helper-Methods.md),我们出于某种原因尝试提供文档 –

0

另一种方式来做到这一点:

$input_file_type = PHPExcel_IOFactory::identify($path_to_file); 
$obj_reader = PHPExcel_IOFactory::createReader($input_file_type); 
$obj_php_excel = $obj_reader->load($path_to_file); 

// Get worksheet dimensions 
$sheet = $obj_php_excel->getSheet(0); 
$highest_row = $sheet->getHighestRow(); 
$highest_column = $sheet->getHighestColumn(); 

// Loop through each row of the worksheet in turn 
for ($row = 1; $row <= $highest_row; $row++){ 
    // Read a row of data into an array 
    $row_data = $sheet->rangeToArray('A' . $row . ':' . $highest_column . $row, NULL, TRUE, FALSE); 
    $excel_data[] = $row_data[0]; 
}