标签: phpexcel

如何使用phpexcel在单元格中创建新行

我有php excel的问题,

我想在一个单元格中创建新行,但我不能,我尝试使用\n或<br />但它不起作用.我的代码:

$objPHPExcel->getActiveSheet()->setCellValue('H5', 'Hello\nWorld'); // i need this show in two line
$objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setWrapText(true);
Run Code Online (Sandbox Code Playgroud)

fyi:我的格式excel是xls而不是xlsx.非常感谢 :)

php phpexcel

49
推荐指数
4
解决办法
9万
查看次数

PHPExcel如何动态设置单元格值

如何使用PHPExcel库动态设置单元格/列值?

我从MySQL数据库中获取结果集,我想使用PHPExcel库以excel格式编写数据.看例子

$objPHPExcel->getActiveSheet()->setCellValue('A1', 'cell value here');
Run Code Online (Sandbox Code Playgroud)

表示我们必须硬编码单元格/列引用为'A1',然后它写入单元格/列A1.如何根据结果集中的行和相应的列值增加单元格/列和/或行引用?

请指导.

php excel-2003 export-to-excel phpexcel

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

PHPExcel非常慢 - 改进方法?

我正在使用PHPExcel在.xlsx中生成报告.在初始测试阶段可以使用小数据集(数十行,3张),但现在当在每张表中超过500行的实际生产数据上使用它时,它变得非常慢.48秒生成一个文件,当运行一个结合了更多信息的报表时,整个事情都失败了Fatal error: Maximum execution time of 30 seconds exceeded in PHPExcel/Worksheet.php on line 1041.有时它在另一个PHPExcel文件中,所以我怀疑确切的位置是相关的.

理想情况下,如果可能的话,我想以某种方式加快速度.如果没有,那么至少增加该脚本的执行限制.

到目前为止我看到的唯一建议是在范围而不是单个单元格中设置样式.不幸的是,我已经在范围内做了我的造型,它也是相当小的.还有其他建议吗?

php spreadsheet phpexcel

43
推荐指数
3
解决办法
5万
查看次数

如何在phpexcel中设置自动高度?

我正在使用phpexcel用PHP生成excel文档.

问题是,如何使用phpexcel制作自动高度行?非常感谢 :)

php phpexcel

43
推荐指数
4
解决办法
7万
查看次数

phpexcel冻结行和列

我正在尝试使用PHPExcel冻结工作表中的第一行和前三列.

我可以毫无问题地冻结行:

$objPHPExcel->getActiveSheet()->freezePane('A2');
Run Code Online (Sandbox Code Playgroud)

或者我可以毫无问题地冻结列:

$objPHPExcel->getActiveSheet()->freezePane('D1');
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用两者时,第一个被第二个覆盖.

有没有办法在同一张纸上使用它们?

谢谢.

php phpexcel

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

如何找出使用PHPExcel从Excel文件中读取的行数和列数?

使用以下代码,我可以使用PHPExcel从Excel文件中读取单元格.

我目前手动定义要读取的行数和列数.

有没有一种方法PHPExcel可以告诉我有多少行和列我必须读取以从工作表中获取所有数据,例如,即使某些行和列留空?

$file_name = htmlentities($_POST['file_name']);
$sheet_name = htmlentities($_POST['sheet_name']);
$number_of_columns = htmlentities($_POST['number_of_columns']);
$number_of_rows = htmlentities($_POST['number_of_rows']);

$objReader = PHPExcel_IOFactory::createReaderForFile("data/" . $file_name);
$objReader->setLoadSheetsOnly(array($sheet_name));
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("data/" . $file_name);

echo '<table border="1">';
for ($row = 1; $row < $number_of_rows; $row++) {
    echo '<tr>';
    for ($column = 0; $column < $number_of_columns; $column++) {
        $value = $objPHPExcel->setActiveSheetIndex(0)->getCellByColumnAndRow($column, $row)->getValue();
        echo '<td>';
        echo $value . '&nbsp;';
        echo '</td>';
    }
    echo '</tr>';
}
echo '</table>';
Run Code Online (Sandbox Code Playgroud)

解:

谢谢,Mark,这是这些功能的完整解决方案:

$file_name = htmlentities($_POST['file_name']);
$sheet_name = htmlentities($_POST['sheet_name']);
$number_of_columns = …
Run Code Online (Sandbox Code Playgroud)

php phpexcel

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

如何使用PHPExcel自动读取计算值?

我有以下Excel文件:

替代文字

我通过循环遍历每个单元格并获取值来读取它getCell(...)->getValue():

$highestColumnAsLetters = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); //e.g. 'AK'
$highestRowNumber = $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$highestColumnAsLetters++;
for ($row = 1; $row < $highestRowNumber + 1; $row++) {
    $dataset = array();
    for ($columnAsLetters = 'A'; $columnAsLetters != $highestColumnAsLetters; $columnAsLetters++) {
        $dataset[] = $this->objPHPExcel->setActiveSheetIndex(0)->getCell($columnAsLetters.$row)->getValue();
        if ($row == 1)
        {
        $this->column_names[] = $columnAsLetters;
        }
    }
    $this->datasets[] = $dataset;
}
Run Code Online (Sandbox Code Playgroud)

但是,虽然它读取的数据很好,但它在字面上读入了计算:

替代文字

我从像这样的讨论中理解我可以getCalculatedValue()用于计算细胞.

问题是在我导入的Excel工作表中,我事先不知道哪些单元格是计算的,哪些不是.

有没有办法让我以一种自动获取值的方式读取单元格的值,如果它有一个简单的值,并获得计算的结果,如果它是一个计算?

回答:

事实证明,这getCalculatedValue()适用于所有单元格,让我想知道为什么这不是默认值,getValue()因为我认为人们通常会想要计算的值而不是方程本身,无论如何这都有效:

...->getCell($columnAsLetters.$row)->getCalculatedValue();
Run Code Online (Sandbox Code Playgroud)

替代文字

php phpexcel

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

使用PHPExcel合并Cell值 - PHP

我有一个简单的表,如:


- id 
- first_name
- last_name
- email
- phone

我正在使用PHPExcel以XLS格式导出我的数据


    $rowNumber = 1;
    while ($row = mysql_fetch_row($result)) {
       $col = 'A';
       foreach($row as $cell) {
          $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
          $col++;
       }
       $rowNumber++;
   }

现在,我要合并的两个领域first_name- last_name在一个单元格

我试过了:


$rowNumber = 1;
   while ($row = mysql_fetch_row($result)) {
   $objPHPExcel->getActiveSheet()->setCellValue('A'.$rowNumber,$row['id'])
                                 ->setCellValue('B'.$rowNumber,$row['first_name'])
                                 ->setCellValue('C'.$rowNumber,$row['last_name']);                                                                  
   $rowNumber++;
}

但是我得到错误而且没有用.有帮助吗?

php phpexcel

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

PHPExcel中是否有一个方法可以将PHP数组直接写入一行?

我明白我需要写一个我使用的循环SetCellValue('cell_name', 'value'); 但PHPExcel中是否有一个方法只接受一个数组并将其写入Excel工作表行?

就像是:

$testArray = array('testcelltext1', 'testcelltext2', testcelltext3');
PHPExcel::writeArraytoRow($testArray);
//do the other PHPExcel stuff to actually write the file
.
.
.
// outputs an excel file in which the PHP array was written to the first row

我在附带的文档中找不到类似的内容,但这可能只是糟糕的PDF搜索技巧......

php phpexcel

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

PHPExcel:设置字体大小?

我一直在寻找使用名为PHPExcel的PHP库来更改某些Excel单元格的字体大小.

这是我试过的:

$objPHPExcel->getActiveSheet()->getStyle("F1:G1")->getFont()->setFontSize(16);
Run Code Online (Sandbox Code Playgroud)

上述方法不起作用.我想知道是否有人知道该怎么做?

提前谢谢了.

php phpexcel

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

标签 统计

php ×10

phpexcel ×10

excel-2003 ×1

export-to-excel ×1

spreadsheet ×1