我正在尝试在 PHPSpreadsheet 中填充和着色一些标题。列数可以是可变的。文档中建议将单元格样式设置为范围,因此我需要知道最后一个单元格的坐标才能执行此操作。
我尝试使用getCellByColumnAndRowas 我遍历列,但这返回单元格的值而不是坐标:
$i = 1;
$lastCellValue = null;
foreach ($headers as $header) {
    $sheet->setCellValueByColumnAndRow($i, 1, $header);
    $lastCellValue = $sheet->getCellByColumnAndRow($i, 1);
    $i++;
}
$spreadsheet->getActiveSheet()->getStyle('A1:'.$lastCellValue)->getFill()
    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
    ->getStartColor()->setARGB('FFFF0000');
迭代时如何获取最后一个单元格的坐标?
我有以下单元格数据:
bla bla bla abcd efgh ijkl
注意,abcd是粗体,efgh是斜体,同时ijkl是粗体和斜体。
我想读取整个单元格的数据,并将其保存在数据库中,以便我可以按原样将其呈现给最终用户(意味着使用这些样式)。我搜索了文档,我只能修改这个代码:
$path = $this->get('kernel')->getRootDir() . '/../intrebari.xlsx';
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($path);
$bold = $spreadsheet->getActiveSheet()->getStyle('A3')->getFont()->getBold();
但它的问题在于,这仅在整个单元格文本为粗体时才有效,在我的情况下,只有一部分为粗体。
有谁知道如何解决这个问题?谢谢!
我已经使用https://github.com/PHPOffice/phpspreadsheet这个包在 codeigniter 中下载 csv 文件
当我尝试下载时,它在浏览器选项卡中显示空白,并且不显示下载选项
没有错误
尝试使用下面的代码
   <?php
   if (!defined('BASEPATH')) exit('No direct script access allowed');
   require 'vendor/autoload.php';
   use PhpOffice\PhpSpreadsheet\Spreadsheet;
   use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
   class Reports extends Admin_Controller
   {
       public function download()
       {
             $spreadsheet = new Spreadsheet();
             $sheet = $spreadsheet->getActiveSheet();
             $sheet->setCellValue('A1', 'Hello World !');
             $writer = new Xlsx($spreadsheet);
             $writer->save('hello world.xlsx');
       }
   }
有人可以帮忙吗?谢谢
我在使用 CodeIgniter 中的 PHPSpreadsheet 库创建测试文件时遇到问题。当我运行下面的代码时,我收到错误消息:
遇到未捕获的异常类型:ParseError
消息:语法错误,意外的“使用”(T_USE)
文件名:C:\wamp64\www\din-din\application\controllers\home.php
线路编号:17
回溯:
文件:C:\wamp64\www\din-din\index.php 行:315 函数:require_once
你能解释一下发生了什么吗?
测试使用 PHP 5.6.35 和 7.2.4 进行,使用 WampServer64 3.1.3 和 CodeIgniter 版本 3.1.9!PHPSpreadsheet 库是根据https://phpspreadsheet.readthedocs.io/en/develop/中的文档通过 Composer 安装的
谢谢你!
代码:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
    }
    public function index()
    {
        require 'vendor/autoload.php';
        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('A1', 'Hello World !');
        $writer = new Xlsx($spreadsheet);
        $writer->save('hello_world.xlsx');
    } …我想保护特定的单元格内容不被修改。当我试图保护整张纸时,没问题。
$sheet->getProtection()->setSheet(true)->setDeleteRows(true);
但是,无法为单个单元格设置保护。我尝试了以下代码。
1
$sheet->protectCellsByColumnAndRow(0, 1, 100, 100, 'asdf');
2
$sheet->protectCells('A1','password',false);
提前致谢。
我只是想让列自动调整大小。我正在使用 php 电子表格,但找不到如何操作。我已经搜索了其他问题,但他们正在使用我无法在我的 lib worksheet.php 中找到的函数,例如getActiveSheet()任何建议?这是我的代码
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Projects First Year');
$sheet->setCellValue('B1', 'Grades');
$sheet->setCellValue('A2', 'PHP Project 2020');
$sheet->setCellValue('B2', $_SESSION['phpScore']);
我尝试安装 phpspreadysheet 但出现这些错误
Installation failed, deleting ./composer.json.
  [RuntimeException]
  No composer.json present in the current directory (./composer.json), this may   
  be the cause of the following exception.
                                                                                   
  [InvalidArgumentException]
  Package phpoffice/phpspreadsheet has requirements incompatible with your PHP v   
  ersion, PHP extensions and Composer version:                                     
    - phpoffice/phpspreadsheet 1.22.0 requires ext-fileinfo * but it is not pres   
  ent.                                                                             
    - phpoffice/phpspreadsheet 1.22.0 requires ext-gd * but it is not present.
有谁知道如何解决这一问题?我被这些错误困扰了两天,找不到解决方案。谢谢
我正在尝试借助 PHPSpreadsheet 将 Excel 文件直接转换为 PDF。但出现错误“找不到类'Mpdf\Mpdf' ”,这是我的代码:
<?php 
  require 'vendor/autoload.php';
  use PhpOffice\PhpSpreadsheet\IOFactory;
  use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
  use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
  use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;
  $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
  $reader->setReadDataOnly(true);
  $spreadsheet = $reader->load("excel.xlsx");
  // when I use this MPDF class, I'm getting an error Class \Mpdf\Mpdf not found
  $writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
  $writer->save("excel.pdf");
请帮助上面的代码。
谢谢
如何在 Phpspreadsheet 中获取工作表 2?我刚刚看到了 getActiveSheet()。还有其他方法可以获取工作表中的其他工作表吗?