我正在尝试使用 PHPExcel 将数据导出到 Excel,我有一个列,该列上的许多数据都以0例如0054672351或开头057524572。
现在,当我尝试导出到 Excel 时,我的数据将更改为54672351或57524572。
我正在尝试将此列的数据格式更改为文本,但我还遇到这个问题!
我应该怎么办 ?
我正在尝试使用此代码在 Excel 单元格中添加注释:
$objPHPExcel
->getActiveSheet()
->getComment(($arr_periodes[2] + 1), 17 + ($arr_periodes[1]))
->setAuthor($user->prenom . ' ' . $user->nom);
$objCommentRichText = $objPHPExcel
->getActiveSheet()
->getComment(($arr_periodes[2] + 1), 17 + ($arr_periodes[1]))
->getText()
->createTextRun($res->commentaire);
$objCommentRichText->getFont()->setBold(true);
$objPHPExcel
->getActiveSheet()
->getComment(($arr_periodes[2] + 1), 17 + ($arr_periodes[1]))
->getText()
->createTextRun("\r\n");
$objPHPExcel
->getActiveSheet()
->getComment(($arr_periodes[2] + 1), 17 + ($arr_periodes[1]))
->getText()
->createTextRun($res->commentaire);
Run Code Online (Sandbox Code Playgroud)
它打开文件,但我需要修复它并且注释不显示。
这是我的作家:
$writer = new PHPExcel_Writer_Excel2007($objPHPExcel);
Run Code Online (Sandbox Code Playgroud)
编辑
该代码有效:
$writer = new PHPExcel_Writer_Excel2007($objPHPExcel);
Run Code Online (Sandbox Code Playgroud)
是否可以用变量代替'E11'?
我必须使用setCellValueByColumnAndRow,因此5,11即
编辑
我的问题仍然存在:
我尝试过这个:
$objPHPExcel->getActiveSheet()
->getComment('E11')
->getText()
->createTextRun($user->commentaire);
Run Code Online (Sandbox Code Playgroud)
($arr_periodes[2]+1)包含在示例中4 …
我正在尝试读取 Excel 文件中的所有列,但其数量根据行而变化。例如:Row1、col2、col3、col4 Row2、col2、col3 Row3、col2、col3、col4、col5、col6
我正在尝试做类似的事情:
for ($row = 1; $row < 2; $row++){
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
NULL,
TRUE,
FALSE);
echo print_r($rowData[0][0]);
echo "<br>";
$list_of_coordinates = "";
$i = 1;
//echo print_r($rowData[$row][$i+1]);
while($rowData[0][$i+1] != ""){
/*$list_of_coordinates = $list_of_coordinates .
"," .
$rowData[0][$i+1] .
"," .
$rowData[0][$i];
*/
$i+2;
}
$list_of_coordinates = ltrim($list_of_coordinates, ",");
echo $list_of_coordinates;
echo "<br>";
}
Run Code Online (Sandbox Code Playgroud)
但 $highestcolumn 具有最大的列号,在此文件中:BM。但有些行只有 3 或 4 列。可以更新这个号码吗?我的 while 循环现在不工作。
我所做的:
如何找到 \n 并插入新行?例如,我在 A1 中有下一个文本“One\nTwo”。我从 A1 读取文本
$ltr='A1';
$vle=$spreadsheet->getActiveSheet()->getCell($ltr);
Run Code Online (Sandbox Code Playgroud)
在此之后,我尝试在 A1 中再次在 A1 中插入文本并将 \n 替换为一个单元格中的新行
$spreadsheet->getActiveSheet()->getCell($ltr)->setValue("${vle}");
$spreadsheet->getActiveSheet()->getStyle($ltr)->getAlignment()->setWrapText(true);
Run Code Online (Sandbox Code Playgroud)
但这对我不起作用。
因此,如果我打开带有文本的模板,则无法替换单元格中的 \n。我能做什么?
更新。我尝试使用 char(10) 并插入公式(例如)="hello"&char(10)&"world"但仅插入="hello"&char(10)
我有一个脚本可以读取附带 Excel 文件的电子邮件。
我正在使用 PHPExcel 来解析这些文件。
我目前遇到的问题是一封附有五个电子表格的电子邮件。
每次加载第五个文件时,PHP 都会耗尽内存。
最初,我每次完成后都尝试取消 ( $objPHPExcel = NULL;) 和取消设置 ( ) unset($objPHPExcel);PHPExcel 对象。那没有帮助。
然后我尝试将垃圾收集添加到进程 ( gc_enable(); $cycles_collected = gc_collect_cycles();)。那没有帮助。
我将当前的 php 内存使用量打印到我的错误日志中,我可以看到它随着每个 Excel 文件加载到 PHPExcel 中而增长,我还可以看到内存使用量不会随着每个NULL,unset或gc_collect.
以下是 PHP 内存不足之前和之后我的 error_log 的一些示例输出:
[17-Aug-2017 16:04:29 America/Chicago] [Blackouts] Current Memory Usage at beginning of script before loading Excel file: 85575176
[17-Aug-2017 16:04:32 America/Chicago] [Blackouts] Current Memory Usage after loading Excel file: 104474632
[17-Aug-2017 16:04:34 America/Chicago] [Blackouts] Current Memory …Run Code Online (Sandbox Code Playgroud) 在文档中
我没有找到任何适合我需要的有用功能。
是否可以“重置”/“删除单个单元格的整个格式”?将单元格恢复到原始状态。
我在 PHP 中创建了帖子表单,单击按钮就会下载一个 excel 文件,并且我还有一些表单数据也发布到 URL 和文件,用于使用纯 HTML 成功下载并提交表单
在 PHP 中,这是当表单发布到文件时触发的函数
public function downloadExcel($fileName = '', $addTimeStamp = true) {
$fileName = (!$fileName) ? 'excel_download' : preg_replace('/\s+/', '_', $fileName);
if ($addTimeStamp) {
$fileName .= date('_d_m_Y_H_i_s');
}
$fileName .= '.xlsx';
$this->setActiveSheetIndex(0);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$objWriter = PHPExcel_IOFactory::createWriter($this, 'Excel2007'); …Run Code Online (Sandbox Code Playgroud) 我使用 Maatwebsite 包在 Laravel 8 中导入 Excel 文件。安装该包并在 app.php 中添加所需的别名和提供程序后,我还执行了以下命令。
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
Run Code Online (Sandbox Code Playgroud)
但是,当我使用模型 Mymodel (我拥有的模型)创建导入时,出现以下错误。
未定义 Maatwebsite\Excel\Concerns\ToModel;
进口类
class Importer implements ToModel
{
public function model(array $row)
{
return new Universite([
//
]);
}
}
Run Code Online (Sandbox Code Playgroud) 始终在我的浏览器上显示错误消息:
An Error Was Encountered
Non-existent class: IOFactory
Run Code Online (Sandbox Code Playgroud)
所有类PHPExcel,我在库中提取.
这是我的控制器代码
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Report extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper(array('form','url'));
}
public function index()
{
$this->load->library('phpexcel');
$this->load->library('PHPExcel/IOFactory.php');
$objPHPexcel = PHPExcel_IOFactory::load('tandaterima.xlsx');
$objWorksheet = $objPHPexcel->getActiveSheet();
//Daftar barang (4item)
$objWorksheet->getCell('B16')->setValue('UTP');
$objWorksheet->getCell('B17')->setValue('Cross');
$objWorksheet->getCell('B18')->setValue('');
$objWorksheet->getCell('B19')->setValue('');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPexcel, 'Excel5');
$objWriter->save('write5.xls');
}
}
Run Code Online (Sandbox Code Playgroud)
请帮我.
我已经按照一些教程看了一些人有同样的问题,但我无法弄清楚如何将这个工作放在我的项目上.
顺便说一句,我正在使用CodeIgniter框架,我的计算机中有Excel 2007.
public function exportExcel(){
require(APPPATH . 'libraries/toExcel/PHPExcel.php');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Hello');
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename=01simple.xls');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit;
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码.每当我下载该函数生成的文件并尝试打开它时,我得到的是:

当我点击"是"时,我会收到:

phpexcel ×10
php ×9
codeigniter ×2
angular ×1
download ×1
integrated ×1
laravel ×1
memory ×1
phpoffice ×1