php 对齐方法

太庞大了,效率是个问题,可以砍掉不不需要的

 1     /**
 2      * 通过传入的字符串,每个字段的长度,对齐的方式,返回一个符合的字符串
 3      * @param string $input
 4      * @param int $length
 5      * @param int $mode 
 6      * @param char $replaceChar
 7      * 0 靠左对齐 1靠右对齐 2居中对齐  
 8      * 默认为靠左对齐
 9      * @return string
10      */
11     function alignment($input, $length, $mode, $replaceChar)
12     {
13         $inputLength = (strlen($input) + mb_strlen($input, 'UTF8')) / 2;
14         //暂时考虑$length的长度是大于$input的长度的
15         $len = $length - $inputLength >= 0 ? $length - $inputLength : 0;    
16        
17         if ($mode == 2) {
18             //$leftLen为所有空格的长度除2向下取整 判断$rightLen是否和起相等,不相等最后追加一个空格
19             $leftLen = floor($len/2);
20             $rightLen = $len - $leftLen;
21             $spaceStr = '';
22             while ($leftLen--) {
23                 $spaceStr .= $replaceChar;
24             }
25             $input = $spaceStr . $input . $spaceStr . ($leftLen == $rightLen ? '' : $replaceChar);
26         } else {
27             $spaceStr = '';
28             while ($len--) {
29                 $spaceStr .= $replaceChar;
30             }
31             if ($mode == 1) {
32                 $input = $spaceStr . $input;
33             } else {
34                 $input = $input . $spaceStr;
35             }
36         }
37         
38         return $input;
39     }

 

转载于:https://www.cnblogs.com/KuckBoy-shan/p/5615331.html

### 使用 PhpSpreadsheet 设置单元格文本对齐方式 为了设置单元格中的文本对齐方式,`PhpSpreadsheet` 提供了 `Alignment` 类来配置水平和垂直对齐属性。下面是一个具体的例子展示如何应用这些设置。 ```php <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Alignment; // 创建新的 Spreadsheet 对象 $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 填充一些测试数据到 A1 单元格 $sheet->setCellValue('A1', "居中文本"); // 获取活动工作表上的特定单元格并设置其样式 $cell = $sheet->getCell('A1'); $cell->getStyle()->getAlignment() ->setHorizontal(Alignment::HORIZONTAL_CENTER) // 水平居中 ->setVertical(Alignment::VERTICAL_CENTER); // 垂直居中 // 可选:保存 Excel 文件 $writer = new Xlsx($spreadsheet); $writer->save('example.xlsx'); ?> ``` 此代码片段展示了如何创建一个新的电子表格,在其中放置一条消息,并通过调用 `setHorizontal()` 和 `setVertical()` 方法指定该条目应被中心化显示[^1]。 对于更复杂的场景,比如批量更新多个单元格的对齐方式,则可以通过遍历一定范围内的所有单元格来进行操作: ```php <?php // ... 继续上面的例子... // 定义一个区域 (例如 B2 到 D4),并对这个区域内所有的单元格应用相同的对齐规则 $range = 'B2:D4'; foreach ($sheet->getRowIterator() as $row){ foreach ($row->getCellIterator() as $cell){ if(in_array($cell->getColumn(), range('B','D')) && in_array($cell->getRow(), range(2,4))){ $cell->getStyle()->getAlignment() ->setHorizontal(Alignment::HORIZONTAL_RIGHT) // 靠右对齐 ->setVertical(Alignment::VERTICAL_BOTTOM); // 底部对齐 } } } ?> ``` 这段脚本会将从第二行至第四行之间、第 B 至 D 列之间的每一个单元格都调整成靠右边沿以及底部边缘对齐的形式[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值