我正在尝试格式化我正在使用phpexcel创建的文档的单元格宽度,但是当我使用getColumnDimension('a') - > setWidth(7)方法时,它并未在生成的XLSX中准确地生成文件. 我在excel中格式化了该文档,以便我可以找到我想要的单元格值,并且我得到了两个值,一个是excel单位,另一个以英寸为单位. 例如: $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth('7'); 最终会给我一个6.17而不是7的列宽度.有什么想法吗? 解决方案 这是因为MS Excel将图形本身调整到其自身的内部单位:开发人员文档中有一个整个部分(第4.6.28节,标题为"设置列的宽度"),解释了这一点. 在该部分中引用侧边栏: phpexcel中的列宽度的度量不完全对应 您可以在Microsoft Office Excel中使用的措施.柱子 宽度很难在Exce
以下是关于 phpexcel 的编程技术问答
我有一个.xlsx文件.在.xlsx文件中,有4张"活动", "性能","商店","显示". 我想一次和将数据添加到内存之后,仅在内存中加载一张. 报告写.我的代码在下面 $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $worksheet_names = $objReader->listWorksheetNames('/tmp/ac.xlsx'); $objReader->setLoadSheetsOnly('store'); $objPHPExcel = $objReader->load('/tmp/ac.xlsx'); $objPHPExcel->setActiveSheetIndexByName('store'); $sheet = $objPHPExcel->getActiveSheet(); $max_row = $sheet->getHighestRow(); $sheet->setCellVal
我正在尝试将*.xlsb文件转换为php array或*.csv文件(或至少*.xls).我尝试使用PHPExcel,但看起来它无法识别此文件中的内容. 我注意到,您可以将*.xlsb文件重命名为*.zip文件,然后使用命令行unzip *.zip将其解压缩.之后,您将获得sheet1.bin文件的下一个文件夹: 看起来这个文件应该包含Excel单元格值,但是我仍然无法使用PHPExcel解析它.有人可以帮我,甚至可以解析*.xlsb文件并从中获取信息吗?也许可以解析此sheet1.bin文件? 解决方案 phpexcel不支持XLSB文件. XLSB文件格式是邮政编码,与XLSX相同,但是存档中的大多数文件是二进制文件.二进制文件不容易解析. 支持XLSB文件的excel库是 Easyxls .您可以从下载库. 将XLSB转换为PHP数组 //Code for reading xlsb file $workbook = new COM("EasyX
我创建了一个Excel电子表格.在第二列中,我具有0:11:23和2:03:33的值,价值几千行.使用PHP我将格式设置为: $sheet->getStyle($colRange)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4); ,但是细胞仍然只是字符串.如果您将单元格从0:11:22编辑为0:11:33之类的其他内容,则单元格会转换为时间.在顶部,它从0:11:22到0:11:33 AM添加AM的添加似乎是巨大的变化,然后我可以用文件做我想做的事. 如何将数千个单元从0:11:22更改为0:11:22 AM? 解决方案 那是因为您必须将日期/时间转换为MS Excel串行时间戳,并将该值存储在单元格中;如 phpexcel文档并在您存储了一个实际的MS Excel时间戳值后,您可以将格式应用于IT $objPHPExcel->get
当我在新服务器上使用phpexcel时 我遇到了错误的"找不到'ziparchive'类'class'ziparchive',它似乎被我的托管服务提供商阻止了. 没有ZIP支持,我不能在服务器上使用Phpexcel吗? 该服务器上安装了PHP 5.2.8,但我无法为Phpexcel使用基本的PHP源代码. 任何帮助将不胜感激, 谢谢. 解决方案 某些电子表格文件格式,例如Excel 2007及更高版本用作默认格式的OfficeOpenXML需要ziparchive.在最新版本的PHP版本中,Ziparchive始终可用,但是在PHP 5.3之前,它需要在某些系统上手动安装作为PHP扩展. 如果您没有为PHP安装/启用Ziparchive,并且无法自己启用,则可以使用 PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); PCLZIP包含在PHPExcel发行版中,作为PHP内置Ziparchi
我想插入此数组公式: {=SUM(IF(FREQUENCY(IF(T9:T977=1,MATCH(U9:U977,U9:U977,0)),ROW(U9:U977)-ROW(U9)+1),1))} 但是当我使用时: $sheet->getCell("C1")->setValue("{=SUM(IF(FREQUENCY(IF(T9:T977=1,MATCH(U9:U977,U9:U977,0)),ROW(U9:U977)-ROW(U9)+1),1))}"); 它不起作用,我已经检查了文档,但仍未找到任何内容. 解决方案 我找不到任何答案,所以我经历了phpexcel,使自己成为解决方案: in /PHPExcel/Cell.php在switch($pDataType)中的第251行中添加以下内容: case PHPExcel_Cell_DataType::TYPE_FORMULA_ARRAY: $this->_value = (string)$pVal
我想读取一个Excel文件,并在第一个列的左侧添加一个新列 在每个纸上 使用PHP. (Excel文件可以包含多达10张) condenate" afs-"与第一列的每一行中的数据,并将新字符串存储在左侧的新列中. 例如.表1 解决方案 在A列之前插入一个新列: $objPHPExcel->getActiveSheet()->insertNewColumnBefore('A', 1); 然后,您可以将单元格的新值插入列" A"作为公式: : for($row = 2; $row = 20; $row++) { $objPHPExcel->getActiveSheet() ->setCellValue('A'.$row, '="AFS-" && B'.$row); } 或作为绝对值 for($row = 2; $row = 20; $row++) { $objPHPExcel->getActiveSheet()
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Name'); 1.我如何将其设置为粗体? 2.我如何设置宽度(我将在牢房中有一些dinamic文字!)? 我已经阅读了文档,但是我没有找到任何解决方案! 解决方案 粗体: $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); 宽度: $objPHPExcel->getActiveSheet()->getCell('A1')->setWidth(15); 未测试. 其他解决方案 $ $ col Zero 0基于 $ worksheet-> getColumnDimensionByColumn($ col) - > setWidth($ width); HI 2009
当我使用函数getValue()获得单元格值时,如果单元格包含特殊字符,它也会返回false,即使包含非UTF-8字符,是否有任何解决方案可以获取内容?我希望在调用getValue()函数之前对其进行解析.我将感谢任何帮助. $objPHPExcel = $objReader->load($filename); $objWorksheet = $objPHPExcel->getActiveSheet(); $i=0; $record = array(); foreach ($objWorksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false);
我认为这确实是关于方法的问题. 我们有一个来自第三方的核心Excel电子表格,它提供了一些对原始数据的复杂分析.原始数据直接来自第二个电子表格的客户. 我们正在寻求创建一个基于Web的自动化系统的系统,可以在其中上传原始数据Excel文件并执行分析,并生成报告. 报告的生成没有问题,但是实际使用应用程序中的核心Excel电子表格本身进行数学(例如使用Phpexcel),是否有任何里程?还是最好的方法总是复制代码中的分析? 我们的想法是,分析(来自第三方的分析)相当复杂,因此需要大量的脱颖而出来复制PHP,其次是分析的部分经常被第三方的含义调整. excel的新版本定期提供给我们. 我可以想象使用phpexcel做这样的事情,在内存中创建表格并将原始数据合并为第二个工作表,然后读取计算结果,但这是现实的 - 这是太慢 - 还是只是根本不起作用我的想象吗? 任何想法都将不胜感激. 解决方案 根据Excel公式的复杂性,使用Phpexcel的计算引擎
如何从 php ? 生成密码保护的电子表格 我尝试了 http://phpexcel.codeplex.com/ phpexcel提供了3个"保护"级别:文档安全性,表格安全性和单元安全性. 文档安全性允许您在完整的电子表格上设置密码,仅在输入该密码时才能进行更改.但是用户可以打开电子表格并在没有密码的情况下查看内容. 我也尝试了电子表格_excel_writer,但找不到任何解决方案.电子表格_excel_writer仅提供工作表级别安全而不是文件保护. 有人知道任何其他 php excel作家提供文件保护,如果没有密码,则用户甚至无法打开Excel文件? 解决方案 完整的工作簿保护需要对工作簿数据进行加密,并且用于此的加密算法是我在任何可用文档中尚未看到的Excel格式的一个方面.当然,PHP Excel作者库都没有支持以下:我知道这样做的唯一方法(在工作簿本身中)是使用com扩展名来构建您的工作簿. 其他解决方案 您可以首先使用PHP创建
我刚刚开始使用此库(来自Codeplex的库),但我遇到了一些问题.我的目标是使用它,以便我可以从多个Excel文件中处理一些数据,并每个文件将此类数据发送到数据库.我正在做: foreach( $file_list as $file ) { $book = PHPExcel_IOFactory::load( $path . $file ); } 所以,在foreach内部,我(目前)仅向用户显示数据,但是在五个文件之后,我得到了一个内存错误: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 50688 bytes) in /var/www/test/classes/PHPExcel/Shared/OLERead.php on line 76 加载每个文件后,是否有一种方法可以将对象删除,因此为下一个文件保留空间(免费),而不是累积它,或者您宁愿
在我当前的项目中,我使用phpexcel 1.7.8将数据导出到Excel中.按照建议,我成功地将其配置在项目中,并成功地生成XLS文件并存储它,但是当我尝试下载XLS文件时,我就不会收到任何错误消息,而GOR损坏了XLS文件.我有相同的以下代码. /** Error reporting */ if (PHP_SAPI == 'cli') die('This example should only be run from a Web Browser'); /** Include PHPExcel */ require_once '../Classes/PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Maarten Ballia
我知道如何在phpexcel上添加图表,但是我还需要在DOCX文件上插入图表.是否可以使用phpoffice/phpword操纵图表? 如果不可能,您知道这份工作的好库吗? 解决方案 实际上不可能在PHPWORD文档中添加图表.但是该功能在管道中(请按照此票但是,您可以使用phpexcel的某些库(目前和将来): php图表库.实际上,其他解决方案 是的,可以在phpoffice中添加图表.问题是文档尚未完成. $chart = $section->addChart([$chartType], [$categories], [$series]); $chart->getStyle() //For styling the chart $chartTypes = 'pie' / 'doughnut' / 'bar' / 'column'/ 'line'/ 'area' / 'scatter' / 'radar'; //Example $chart = $sectio
我正在尝试使用PHPExcel库中的PHP(Laravel4)中大约40,000行MySQL数据导出. 以下是我的代码: ($ patlist是结果列的数组) set_time_limit ( 3000 ); $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp; $cacheSettings = array( 'memoryCacheSize' => -1); PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); $objPHPExcel = new PHPExcel(); $i = 1; $patList = $result[0]; for ($r = 0; $r setActiveSheetInd
我已经加载了.xls文件 laravel excel : Excel::load('public/files/20160621.xls', function($reader) { // read a cell value }); 如何读取已加载Excel文件的单元格值?文档似乎在那部分尚不清楚. 解决方案 public function get() { $excelFile ... return Excel::load($excelFile, function($doc) { $sheet = $doc->getSheetByName('data'); // sheet with name data, but you can also use sheet indexes. $sheet->getCell('A1'); $sheet->getCellByColumnAndRow(0,0);
我想使用以下代码使用PHP Excel将XLS文件保存到服务器上的特定文件夹: $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5'); //force user to download the Excel file without writing it to server's HD $objWriter->save('C:/xampp/htdocs/timesheet/files/test.xls'); ,但我继续遇到以下错误: A PHP Error was encountered Severity: Warning Message: fopen(‪C:/xampp/htdocs/timesheet/files/test.xls): failed to open stream: Invalid argument Filename: PPS/Root.p
我有一个带有两个纸的Excel文件: 工作表; 列表 - 将在Worksheet中显示为列表项目的项目列表. 请参阅以下图像: 我想使用 PHPExcel 库来生成它.我尝试过但没有得到预期的结果.请参阅我的下面代码: $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("Soumya Biswas") ->setLastModifiedBy("Soumya Biswas") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Docum
我在phpexcel excel下载代码面临问题.下载代码在一台服务器(NetCore Server)上工作,但相同的一组代码无法在AWS服务器上使用.问题??以下是phpexcel下载代码: error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('Europe/London'); if (PHP_SAPI == 'cli') die('This example should only be run from a Web Browser'); /** Include PHPExcel */ require_once '../Classes/PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPEx