PHP для добавления формулы в столбец в Excel с помощью xlsxwriter

я могу поместить = MAX (K2, L2, M2, O2, P2, Q2, N2) в ячейку F2 с помощью xlsxwriter, нет проблем, но я не могу изменить его для каждой строки (то есть = MAX (K2, L2, M2) , O2, P2, Q2, N2) в ячейке F2)

таким образом, если бы у меня было тысяча строк, она бы пошла (т.е. MAX (K1000, L1000, M1000, O1000, P10002, Q2, N1000) в ячейке F1000) (BestPrice — это строка F)

это код, который у меня есть в PHP 5.3.24

$resulted[$y] = array('ISBN' => $isbn,
'Quantity' => $qty,
'Title' => $shortTitle,
'ItemAmount'=>$amount,
'Best'=>$best,
'BestPrice'=> '=MAX(K2,L2,M2,O2,P2,Q2,N2)',
'Difference'=>'=E-H',
'AvaQty'=>$AvaQty,
'LastDate'=>$LastDate,
'LastPrice'=>$LastPrice,
);
$y++;
}$header =  array('ISBN' => 'integer',
'Quantity' => 'integer',
'Title' => 'string',
'Item_Amount'=>'price',
'Best' =>'string',
'BestPrice'=> 'price',

'Difference'=>'price',

'AvaQty'=>'integer',
'LastDate'=>'date',
'LastPrice'=>'price',);

$col_options=array('widths'=> array(40, 10,40,10));
$writer = new XLSXWriter();

$writer->writeSheetHeader('Name', $header, $col_options);
foreach($resulted as $row)
$writer->writeSheetRow('Name', $row);
$writer->writeToFile("../My".$tracking .".xlsx");

Какие-нибудь мысли

1

Решение

Вам просто нужно использовать переменную для отслеживания номеров строк. В зависимости от того, что $y вы можете использовать это. Если нет, то что-то вроде этого будет работать:

$y = 0;
$row = 2;
foreach($book_list as $book){ //Assuming you have some kind of book list you're iterating over...
//Doing some stuff (e.g. setting those variables you use in the array)

$resulted[$y] = array('ISBN' => $isbn,
'Quantity' => $qty,
'Title' => $shortTitle,
'ItemAmount'=>$amount,
'Best'=>$best,
'BestPrice'=> "=MAX(K{$row},L{$row},M{$row},O{$row},P{$row},Q{$row},N{$row})", //Note the change in this line.
'Difference'=>'=E-H',
'AvaQty'=>$AvaQty,
'LastDate'=>$LastDate,
'LastPrice'=>$LastPrice,
);
$y++;
$row++;
}

Я подозреваю, что вы сможете использовать $y для этого вместо отдельной переменной, предполагая, что это просто 0-индексированный счетчик, вы можете сделать что-то вроде $row = $y+2 в начале итерации цикла. Независимо от этого, это должно указать вам в правильном направлении

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]