- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以前用的是phpexcel,现在想换成phpspreadsheet。
我尝试根据以下站点点击命令,但它不起作用。
我做错了吗?
我还在我的代码中使用了一个名为 phpexcel
的容器,它仍然可用吗?
https://phpspreadsheet.readthedocs.io/en/latest/topics/migration-from-PHPExcel/
命令
$composer require phpoffice/phpspreadsheet
$composer require rector/rector --dev
$vendor/bin/rector process src --set phpexcel-to-phpspreadsheet
bash: vendor/bin/rector: No such file or directory
$vendor/rector/rector/bin/rector process src --set phpexcel-to-phpspreadsheet
[ERROR] Set "phpexcel-to-phpspreadsheet" was not found.
//Add command
$composer require rector/rector "0.7.*"
$composer require rector/rector-prefixed --dev
$vendor/rector/rector/bin/rector init
在 Controller 中使用 phpexcel
/**
* @Route("/summary/{_format}", defaults={"_format"="html"}, requirements={"_format"="html|xls"})
* @Method("GET")
*
*/
public function summaryAction(Request $request, $_format)
{
$perPage = 100;
// Create a search form
$searchForm = $this->createForm(ShopMetricsSearchType::class, null, array(
'action' => $this->generateUrl('app_hq_analytics_summary'),
));
// Get search criteria
$params = $this->getSearchParameter($searchForm, $request);
$pagination = null;
$no = 0;
if ($request->getRequestFormat() == 'html') {
// At the time of html output
// Create page nation
$count = 0;
if($params['brand']){
$count = $this->get('admin.shopService')->countShopBySearchParams(
array('shopDispFlg' => 1, 'brand' => $params['brand'])
);
}else{
$count = $this->get('admin.brandService')->countBrandBySearchParams(
array('brandDispFlg' => 1)
);
}
$page = $request->query->getInt('page', 1);
$num = $request->query->getInt('num',$perPage);
$pagination = new Pagination($count, $page, $num, 10);
// Calculation of No.
$no = ($perPage*$page) - $perPage;
} elseif ($request->getRequestFormat() == 'xls') {
// xls at the time of output
$phpExcelObject = $this->get('admin.analyticsService')->getSummaryExcel(
$params
,$this->get('phpexcel')->createPHPExcelObject()
,$this->get('kernel')->getRootDir()."/../src/AppBundle/Resources/views/Hq/Analytics/summary.xls"
);
// create the writer
$writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel5');
// create the response
$response = $this->get('phpexcel')->createStreamedResponse($writer);
// adding headers
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'summary.xls'
);
$response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
return $response;
}
// Get access status by shop
$summaryMetrics = $this->get('admin.analyticsService')->getSummaryMetrics(
$params,
$pagination ? $pagination->getItemsPerPage() : null,
$pagination ? $pagination->getSelectedPageOffset() : null
);
// Screen display
return $this->render('@AppBundle/Hq/Analytics/summary.' . $_format . '.twig', [
'searchForm' => $searchForm->createView(),
'summaryMetrics' => $summaryMetrics,
'pagination' => $pagination,
'no' => $no
]);
}
服务
public function getSummaryExcel(array $params,$phpExcelObject,$file)
{
$summaryMetrics = $this->getSummaryMetrics(
$params
);
$phpExcelObject = \PHPExcel_IOFactory::load($file);
$phpExcelObject->setActiveSheetIndex(0);
$colInitPos = 0;
$startRow = 4;
$col = $colInitPos;
$rowsCount = count($summaryMetrics);
$colsCount = 24;
$totalRow=$rowsCount+$startRow;
// First, prepare as many rows as you need
$sheet = $phpExcelObject->getActiveSheet();
$sheet->insertNewRowBefore($startRow+1, $rowsCount -1 );
$formulaDef = array(
);
for($col=0;$col<$colsCount;$col++){
for($row=$startRow;$row<$totalRow;$row++){
if(isset($formulaDef[$col])){
$value = str_replace('[ROW]', $row, $formulaDef[$col]);
$sheet->setCellValueByColumnAndRow($col,$row, $value);
}
}
}
$row = $startRow;
foreach($summaryMetrics as $metrics){
$sheet
->setCellValueByColumnAndRow(0, $row, $metrics['rank']);
$row++;
$col = $colInitPos;
}
$sheet->setCellValueByColumnAndRow(0, 2, $term);
$sheet->setTitle('Aggregate report '.str_replace('/','',$term));
$phpExcelObject->setActiveSheetIndex(0);
return $phpExcelObject;
}
校长
#!/usr/bin/env php
<?php
declare(strict_types=1);
use Psr\Container\ContainerInterface;
use Rector\Console\Application;
use Rector\Console\Style\SymfonyStyleFactory;
use Symplify\PackageBuilder\Reflection\PrivatesCaller;
@ini_set('memory_limit', '-1'); // @ intentionally: continue anyway
// Performance boost
gc_disable();
// Require Composer autoload.php
require_once __DIR__ . '/bootstrap.php';
try {
/** @var ContainerInterface $container */
$container = require_once __DIR__ . '/container.php';
} catch (Throwable $throwable) {
$symfonyStyle = (new SymfonyStyleFactory(new PrivatesCaller()))->create();
$symfonyStyle->error($throwable->getMessage());
exit(1);
}
$application = $container-rector/rector-prefixed>get(Application::class);
exit($application->run());
版本
symfony v4.4.19
PHP v7.3.24
phpoffice/phpspreadsheet 1.17.1
校长/校长 v0.7.2
校长/校长前缀 v0.9.31
最佳答案
选项 1
添加到 composer.json
{
"scripts" : {
"rector" : "rector process src --set phpexcel-to-phpspreadsheet"
}
}
然后运行 composer run rector
选项 2
在项目根目录下运行
./vendor/bin/rector process src --set phpexcel-to-phpspreadsheet
↑
关于php - 如何从 phpexcel 迁移到 phpspreadsheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66686594/
我已经完成了我的工作,直到在 excel 中获取 SQL 表数据,但我还想使用 PHPEXCEL 将数据转换为条形图。有人知道吗?怎么做?我的 PHPEXCEL 代码如下, $sql = "SELEC
我想阅读 Excel 工作表下拉列表中给出的选项列表。 例如: - 有一个单元格(86,G)没有尝试作为选项,但它是一个下拉列表。所以无论用户选择什么,我都想从下拉列表中读取最后一个选项。 如何实现这
我在使用 PHPExcel 设置自定义日期格式时遇到了一个奇怪的问题:我正在将一个 sql 格式的日期写入一个单元格,并使用 setFormatCode 将其格式设置为“d/m/y”。当我在 Exce
在 PHPExcel 中创建 XLS 文档时如何为事件单元格设置特定颜色? 最佳答案 $sheet->getStyle('A1')->applyFromArray( array(
我需要生成Excel文件,我进行了搜索,phpexcel似乎很好而且稳定。我想知道:* 鉴于它是一个 symfony2.0 项目,如何将它集成到我的项目中* 如果我可以通过这个 php 库完成我通常在
我在使用 PHPExcel 时遇到以下问题 function Test($a, $b) { // Create a new PHPExcel object with a single she
我想使用 PHPExcel 从 Excel 工作表中删除所有以“//”开头的行。我的代码: require '../Classes/PHPExcel.php'; require_once '../Cl
我的 EXCEL 到 CSV 转换代码正在运行...但对于特定的 Excel 文件,它出现错误 在第 950 行/var/www/portal/user/admin/pe/Classes/PHPExc
我正在使用 PHPExcel 库,我无法更改图表的颜色。 谁有解决办法,请告诉我? 检查这个屏幕我想改变蓝色、红色和绿色的颜色: 最佳答案 当前版本的 PHPExcel 不支持这样做。 在 this
我正在尝试将 PHPExcel 包含到 Silverstripe 3 站点以导出 Excel 工作表。现在我只是想测试,但在尝试时出现此错误: [Warning] require_once(/site
当我尝试从 excel 文件中提取信息时遇到了这个问题。这是我的情况,我从不同用户那里收到了 34 个 Excel 文件。 我正在使用 PHP 版本 5 从 Excel 文件中提取。我的脚本将循环每个
我有来自 phpExel 的这段代码。 $objPHPExcel->setActiveSheetIndex(1)->mergeCells('A1:I1'); 此代码在 A1 到 I1 列之间创建了一些
我正在使用 phpexcel 将我的查询导出到 excel 文件中;但是在我创建文件(xslx 格式)后,我无法在 excel 中打开我的文件。它给出了“文件格式或扩展名无效。验证文件没有损坏并且文件
我有以下代码: $vOffset = 2; $offset = 6; $formatRows = 100; $formatColumns = 100; //set conditional format
我正在尝试生成包含多个工作表的 Excel 文件,并且该文件正在使用正确的数据生成,但在打开它时出错。 错误是: 此外,当我尝试通过循环遍历工作表时,我无法访问除第一页外的工作表。 发生 PHP 错误
我在将 .xlsx 文件转换为 .csv 时遇到问题。当我尝试转换它时,会出现 csv 文件并激活 Text Wrap。问题是,我需要将该 csv 文件导入数据库,而当前格式不允许我这样做。我有一个问
这是我的电子表格中的内容: 12/04/2011 8:56:17 p.m. (xls dateserial = 40645.87242) 这是我用来提取日期并在 PHP 中转换为日期字符串的代码:
我正在使用 setReadDataOnly(true) 读取 XLS 文件。读取的对象将再次保存为新的 Excel 文件。不幸的是,某些单元格值计算不正确(这与使用小计公式的单元格的计算错误有关)。如
有谁知道用于将图案样式添加到单元格颜色的语法?我想添加一条细的反向斜条纹。 最佳答案 据我所知,这是不可能的。在 \Style\Fill.php ,这些似乎是唯一的选择,尽管可能会有更多选择的更新版本
我对拥有一些文件的PHPExcel的行为感到有些困惑。 这些文件包含大约。 3000行数据,但是根据PHPExcel,最后使用的行是65535。我尝试从文件中剪切几行并将其粘贴到新文件中,但无济于事。
我是一名优秀的程序员,十分优秀!