如何在 phpspreadsheet 中使用 linest 函数?
How do I use linest function in phpspreadsheet?
我正在使用 33_Chart_create_scatter.php 生成 XY 散点图。我即将完成。我剩下的就是引入 linest 函数。有人可以提供一些关于在 phpspreadsheet 中使用 linest 的代码吗?
我用谷歌搜索了很多,但都没有成功。多次访问 phpspreadsheet 文档。资料很多,看不懂。到目前为止我还没有使用 类,所以我不知道如何形成代码来与下面代码部分中显示的 类 对话?
这是我使用的数据:
$xAxisTickValues = [
新 DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C:$C', null, 18),
新的 DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER,'Worksheet!$F:$F',null,18)
[;
\PhpOffice\PhpSpreadsheet\Calculation\Statistical::LINEST
'LINEST' => [
'category' => Category::CATEGORY_STATISTICAL,
'functionCall' => [Statistical::class, 'LINEST'],
'argumentCount' => '1-4',
],
public 静态函数 LINEST($yValues, $xValues = null, $const = true, $stats = false)
{
$const = ($const === null) ?真 : (bool) Functions::flattenSingleValue($const);
$stats = ($stats === null) ? false : (bool) Functions::flattenSingleValue($stats);
如果($xValues === null){
$xValues = range(1, count(Functions::flattenArray($yValues)));
}
当然,我还没有结果。我的期望是返回最简单的统计数据。
一个星期没有人添加任何东西。这是我在那一周完成的工作:我通过 运行 在 33 Chart create scatter 中的数据上使用公式 wizzard / linest 得到了以下两个数据数组。我做的图表。所以,我从 phpspreadsheet/linest.
知道我想要的数据是什么
Six foot data array
0.798178535 18.35040936
0.012101577 0.241020964
0.996335545 0.53274435
4350.269442 16
1234.67843 4.541064671
Ten foot data array
0.819287926 16.98988304
0.007826008 0.15586663
0.998542214 0.344522174
10959.54502 16
1300.848983 1.899128449
setCellValue, puts the formula in cell A32 and cell A32 displays the first number from the Six foot data array above.
$helper->log, gives the following output. The getCell gives the linest formula in the cell.
getCalculatedValue gives the Last value in the Six foot data array above.
19:12:47 Write Xlsx format to 33_Chart_create_scatter.xlsx in 0.0138 seconds
19:12:47 Value of linest six foot from getCell(A32) : =LINEST(D1:D18 , C1:C18 , TRUE, TRUE)
19:12:47 Value of linest six foot used getCalculatedValue get cell A32 : 4.5410646714826
19:12:47 Value of linest ten foot from getCell(A42) : =LINEST(G1:G18 , F1:F18 , TRUE, TRUE)
19:12:47 Value of linest ten foot used getCalculatedValue get cell A42 : 1.8991284485724
我试过了
$spreadsheet->getActiveSheet()->fromArray($linestSix ,null,'C32');
这与上面描述的 setCellValue 相同。
按照此 link、enter link description here ,当我 运行 我的代码生成我的图表时查看浏览器输出,33 图表创建散点图。向下进入 [Worksheet!A32] 对象的大约 75 行,这是我的数据,但是,我如何从那里取出它?我从下面的 $linest6 的 print_r 中得到的。
$linest6 = $spreadsheet->getActiveSheet()->setCellValue('A32', '=LINEST(D1:D18 , C1:C18 , TRUE, TRUE)');
echo 'The six foot data array : <br>';
echo '<pre>';
print_r($linest6);
echo '</pre>';
有人,也许是 Mark Baker,可以帮助我从 linest 获取统计信息,就像我上面从公式向导中描述的一样吗?谢谢。
我终于明白了!!多次前往 Google。查看如何从 class-function 中检索数组。这是我的最终脚本。
$stats = new Statistical();
$statArr6 = $stats->LINEST($dataArraySixY, $dataArraySixX, TRUE, TRUE);
$statArr10 = $stats->LINEST($dataArrayTenY, $dataArrayTenX, TRUE, TRUE);
$worksheet->fromArray(
$statArr6,
NULL,
"C22");
$worksheet->fromArray(
$statArr10,
NULL,
'C32'
);
我还有一些东西可以根据需要显示信息,但我有数组。
我正在使用 33_Chart_create_scatter.php 生成 XY 散点图。我即将完成。我剩下的就是引入 linest 函数。有人可以提供一些关于在 phpspreadsheet 中使用 linest 的代码吗?
我用谷歌搜索了很多,但都没有成功。多次访问 phpspreadsheet 文档。资料很多,看不懂。到目前为止我还没有使用 类,所以我不知道如何形成代码来与下面代码部分中显示的 类 对话?
这是我使用的数据:
$xAxisTickValues = [
新 DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C:$C', null, 18),
新的 DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER,'Worksheet!$F:$F',null,18)
[
\PhpOffice\PhpSpreadsheet\Calculation\Statistical::LINEST
'LINEST' => [
'category' => Category::CATEGORY_STATISTICAL,
'functionCall' => [Statistical::class, 'LINEST'],
'argumentCount' => '1-4',
],
public 静态函数 LINEST($yValues, $xValues = null, $const = true, $stats = false) { $const = ($const === null) ?真 : (bool) Functions::flattenSingleValue($const); $stats = ($stats === null) ? false : (bool) Functions::flattenSingleValue($stats); 如果($xValues === null){ $xValues = range(1, count(Functions::flattenArray($yValues))); }
当然,我还没有结果。我的期望是返回最简单的统计数据。
一个星期没有人添加任何东西。这是我在那一周完成的工作:我通过 运行 在 33 Chart create scatter 中的数据上使用公式 wizzard / linest 得到了以下两个数据数组。我做的图表。所以,我从 phpspreadsheet/linest.
知道我想要的数据是什么Six foot data array
0.798178535 18.35040936
0.012101577 0.241020964
0.996335545 0.53274435
4350.269442 16
1234.67843 4.541064671
Ten foot data array
0.819287926 16.98988304
0.007826008 0.15586663
0.998542214 0.344522174
10959.54502 16
1300.848983 1.899128449
setCellValue, puts the formula in cell A32 and cell A32 displays the first number from the Six foot data array above.
$helper->log, gives the following output. The getCell gives the linest formula in the cell.
getCalculatedValue gives the Last value in the Six foot data array above.
19:12:47 Write Xlsx format to 33_Chart_create_scatter.xlsx in 0.0138 seconds
19:12:47 Value of linest six foot from getCell(A32) : =LINEST(D1:D18 , C1:C18 , TRUE, TRUE)
19:12:47 Value of linest six foot used getCalculatedValue get cell A32 : 4.5410646714826
19:12:47 Value of linest ten foot from getCell(A42) : =LINEST(G1:G18 , F1:F18 , TRUE, TRUE)
19:12:47 Value of linest ten foot used getCalculatedValue get cell A42 : 1.8991284485724
我试过了
$spreadsheet->getActiveSheet()->fromArray($linestSix ,null,'C32');
这与上面描述的 setCellValue 相同。 按照此 link、enter link description here ,当我 运行 我的代码生成我的图表时查看浏览器输出,33 图表创建散点图。向下进入 [Worksheet!A32] 对象的大约 75 行,这是我的数据,但是,我如何从那里取出它?我从下面的 $linest6 的 print_r 中得到的。
$linest6 = $spreadsheet->getActiveSheet()->setCellValue('A32', '=LINEST(D1:D18 , C1:C18 , TRUE, TRUE)');
echo 'The six foot data array : <br>';
echo '<pre>';
print_r($linest6);
echo '</pre>';
有人,也许是 Mark Baker,可以帮助我从 linest 获取统计信息,就像我上面从公式向导中描述的一样吗?谢谢。
我终于明白了!!多次前往 Google。查看如何从 class-function 中检索数组。这是我的最终脚本。
$stats = new Statistical();
$statArr6 = $stats->LINEST($dataArraySixY, $dataArraySixX, TRUE, TRUE);
$statArr10 = $stats->LINEST($dataArrayTenY, $dataArrayTenX, TRUE, TRUE);
$worksheet->fromArray(
$statArr6,
NULL,
"C22");
$worksheet->fromArray(
$statArr10,
NULL,
'C32'
);
我还有一些东西可以根据需要显示信息,但我有数组。