标签: phpspreadsheet

在PHPSpreadsheet中迭代时如何获取单元格坐标?

我正在尝试在 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');
Run Code Online (Sandbox Code Playgroud)

迭代时如何获取最后一个单元格的坐标?

php excel phpspreadsheet

2
推荐指数
1
解决办法
8157
查看次数

PHPSpreadsheet 从单元格中的文本读取样式

我有以下单元格数据:

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();
Run Code Online (Sandbox Code Playgroud)

但它的问题在于,这仅在整个单元格文本为粗体时才有效,在我的情况下,只有一部分为粗体。

有谁知道如何解决这个问题?谢谢!

php phpspreadsheet

2
推荐指数
1
解决办法
3062
查看次数

PHP电子表格在浏览器选项卡中显示空白

我已经使用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');
       }
   }
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢

php codeigniter phpspreadsheet

2
推荐指数
1
解决办法
6699
查看次数

是否可以使用PhpSpreadSheet在现有的spreadSheet中编写?

我当前正在使用PhpSpreadSheet库,我想写到现有的spreadSheet中。那可能吗?

如果是,怎么办?我没有在文档中看到任何可能性。

谢谢!

php spreadsheet phpspreadsheet

2
推荐指数
1
解决办法
3240
查看次数

PHPSpreadsheet 和 CodeIgniter -&gt; 消息:语法错误,意外的“使用”(T_USE)

我在使用 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');
    } …
Run Code Online (Sandbox Code Playgroud)

php codeigniter phpspreadsheet

2
推荐指数
1
解决办法
5576
查看次数

如何使用phpspreadsheet保护单个单元格

我想保护特定的单元格内容不被修改。当我试图保护整张纸时,没问题。

$sheet->getProtection()->setSheet(true)->setDeleteRows(true);
Run Code Online (Sandbox Code Playgroud)

但是,无法为单个单元格设置保护。我尝试了以下代码。

1

$sheet->protectCellsByColumnAndRow(0, 1, 100, 100, 'asdf');
Run Code Online (Sandbox Code Playgroud)

2

$sheet->protectCells('A1','password',false);
Run Code Online (Sandbox Code Playgroud)

提前致谢。

phpoffice phpspreadsheet

2
推荐指数
1
解决办法
2536
查看次数

PHP SpreadSheet 找不到自动调整列宽大小的函数

我只是想让列自动调整大小。我正在使用 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']);
Run Code Online (Sandbox Code Playgroud)

php phpexcel phpspreadsheet

2
推荐指数
3
解决办法
3198
查看次数

无法安装 PHPSpreadsheet

我尝试安装 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.
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?我被这些错误困扰了两天,找不到解决方案。谢谢

php phpspreadsheet

2
推荐指数
1
解决办法
2万
查看次数

在 Phpspreadsheet 中未找到“Mpdf\Mpdf”类错误

我正在尝试借助 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");
Run Code Online (Sandbox Code Playgroud)

请帮助上面的代码。

谢谢

php phpspreadsheet

1
推荐指数
1
解决办法
1万
查看次数

如何在 Phpspreadsheet 中获取工作表 2?

如何在 Phpspreadsheet 中获取工作表 2?我刚刚看到了 getActiveSheet()。还有其他方法可以获取工作表中的其他工作表吗?

excel phpspreadsheet

1
推荐指数
1
解决办法
8880
查看次数