对PHPExcel一些简单的理解 及怎么读取单元格数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对PHPExcel一些简单的理解 及怎么读取单元格数据相关的知识,希望对你有一定的参考价值。

参考技术A 常用的用php读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。 1. 以.csv格式读取 将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。本回答被提问者采纳

PHPExcel 和文本换行

【中文标题】PHPExcel 和文本换行【英文标题】:PHPExcel and Text Wrapping 【发布时间】:2012-07-03 05:18:09 【问题描述】:

我知道这行代码会使单元格文本换行:

$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setWrapText(true);

'D1' 是选定的单元格。

有没有办法让整个 Excel 工作表自动包装所有内容,而不是对我需要包装的每个单元格使用此代码?

或者是否有更好的实践技术可用于指定列?

【问题讨论】:

您是否考虑过循环到每个单元格并应用包装器? 循环是非常低效的,所以我不会推荐它,但是为一系列单元格设置样式是一个简单的调用 【参考方案1】:
$objPHPExcel->getDefaultStyle()->getAlignment()->setWrapText(true);

【讨论】:

这里可能是最好的答案。我不知道发布问题时是否存在这种方法,但这绝对是一种在文档的所有单元格中换行的绝妙方法。【参考方案2】:

应用于列

$highestRow = $$objPHPExcel->getActiveSheet()->getHighestRow();
for ($row = 1; $row <= $highestRow; $row++)
    $sheet->getStyle("D$row")->getAlignment()->setWrapText(true);

【讨论】:

可以使用范围时无需换行。 getStyle('A1:AI100') @MH 如何包装多个列,而不是范围【参考方案3】:

应用于一个范围:

$objPHPExcel->getActiveSheet()->getStyle('D1:E999')
    ->getAlignment()->setWrapText(true); 

应用于列

$objPHPExcel->getActiveSheet()->getStyle('D1:D'.$objPHPExcel->getActiveSheet()->getHighestRow())
    ->getAlignment()->setWrapText(true); 

【讨论】:

我也面临同样的问题。它工作得很好,但它显示了字符串的最后一个单词?我想显示可以放入单元格的前几个字符? @virus - 那么也许您还需要设置垂直对齐方式 请注意,将范围设置为 999 会增加文件大小。 如果您的行数少于 999,它只会增加文件大小,请调整该值以适合您的电子表格的大小

以上是关于对PHPExcel一些简单的理解 及怎么读取单元格数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在不跳过值的情况下读取 PHPExcel 中的空单元格?

phpExcel怎么设置单元格宽度

phpexcel可以动态合并单元格吗?

如何使用 PHPExcel 库读取 excel 一个单元格日期(DD/MM/YYYY)值并将日期格式转换为(M/D/YYYY)

phpexcel 怎么根据字符串长度设置单元格的宽度

php 数据导出到excel 2种带有合并单元格的导出