精华内容
下载资源
问答
  • phpoffice

    千次阅读 2020-03-02 13:55:23
    PhpSpreadsheet 是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,... ...PHPExcel 几乎...

    PhpSpreadsheet

    是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,支持Excel的所有操作。

    官网:https://phpspreadsheet.readthedocs.io/en/stable/

    PHPWord

    尽管目前只是测试版但是功能还是很强劲!完美兼容MF Word并且支持打开.doc or.docx。可以插入文本,文本符,分页,页眉/页脚,表格,列表中的元素,超链接等等。

    地址:http://phpword.codeplex.com/

    下载:http://phpword.codeplex.com/releases/view/49543

    PHPPowerpoint

    可以演示文档、添加幻灯片,支持图像、媒体的加入,已经作者的信息。完美兼容MS Office。

    地址:http://phppowerpoint.codeplex.com/



    程序员交流qq群:782974737 点击加入

    展开全文
  • phpoffice.zip

    2021-06-24 10:44:47
    phpoffice 可用作操作word,excel插件
  • PhpOffice操作

    2020-07-22 11:23:18
    <?php ... ... ...use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; class GroupController extends BaseControll.

    <?php

    namespace App\Http\Controllers\Admin;

    use Illuminate\Http\Request;
     

    use DB;
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    use PhpOffice\PhpSpreadsheet\IOFactory;

    class GroupController extends BaseController
    {

        public function exportNames(Request $request)
        {
            $orderid = $request->get('orderid','');
            if(!$orderid){
                redirect()->to('admin/group');
            }
            
            $orderInfo = DB::table('si_group_order_plans')->where('order_id',$orderid)->first();
            
            if(!$orderInfo){   # 空数据
                redirect()->to('admin/group');
            }
            
            $spreadsheet = new Spreadsheet();
            $sheet = $spreadsheet->getActiveSheet();
            
            $sheet->setCellValue('A1', '姓名');//新文件需要设置头部
            $sheet->setCellValue('B1', '身份证号码');
            $sheet->setCellValue('C1', '民族');
            $sheet->setCellValue('D1', '参加工作时间');
            $sheet->setCellValue('E1', '户口性质');
            $sheet->setCellValue('F1', '工资');
            

            $row = 1;//记录行数
            
            $arr = json_decode($orderInfo->insurant_list,true);
            
            foreach ($arr as $key => $value) {// 写入数据
                $sheet->setCellValue('A'.($row+1), $value['xm']."\t");
                $sheet->setCellValue('B'.($row+1), $value['sfzhm']."\t");
                $sheet->setCellValue('C'.($row+1), $value['mz']."\t");
                $sheet->setCellValue('D'.($row+1), $value['cjgzsj']."\t");
                $sheet->setCellValue('E'.($row+1), $value['hkxz']."\t");
                $sheet->setCellValue('F'.($row+1), $value['gz']."\t");
                $row++;
            }
                
            $filename = time().'.xlsx';
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment;filename="'.$filename.'"');
            header('Cache-Control: max-age=0');
            $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
            $writer->save('php://output');
            return;
        }
    }

    // Set properties
    $objPHPExcel->getProperties()
        ->setCreator("1245049149@qq.com")
        ->setLastModifiedBy("1245049149@qq.com")
        ->setTitle("Office 2007 XLSX Test Document")
        ->setSubject("Office 2007 XLSX Test Document")
        ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
        ->setKeywords("office 2007 openxml php")
        ->setCategory("Test result file");
    // 字体和样式
    $objPHPExcel->getActiveSheet()
        ->getDefaultStyle()
        ->getFont()
        ->setSize(12); // 字体大小
    $objPHPExcel->getActiveSheet()
        ->getStyle('A2:D2')
        ->getFont()
        ->setBold(false); // 第二行是否加粗
    $objPHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getFont()
        ->setBold(true); // 第一行是否加粗
    $objPHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getFont()
        ->setSize(16); // 第一行字体大小
    $objPHPExcel->getActiveSheet()
        ->getStyle('A2')
        ->getFont()
        ->setSize(14); // 第二行字体大小
    $objPHPExcel->getActiveSheet()
        ->getStyle('A6')
        ->getFont()
        ->setSize(14); // 第六行字体大小
    $objPHPExcel->getActiveSheet()
        ->getStyle('A11')
        ->getFont()
        ->setSize(14); // 第十一行字体大小
                                                                                 
    // 设置垂直居中
    $objPHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getAlignment()
        ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A2:D2')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    // 设置水平居中
    $objPHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A3:G5')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A7:G10')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A12:B15')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    // 设置左对齐
    $objPHPExcel->getActiveSheet()
        ->getStyle('A2')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A6')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    $objPHPExcel->getActiveSheet()
        ->getStyle('A11')
        ->getAlignment()
        ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    // 设置行高度
    $objPHPExcel->getActiveSheet()
        ->getDefaultRowDimension()
        ->setRowHeight(20);
    // 设置默认行高
    $objPHPExcel->getActiveSheet()
        ->getRowDimension('1')
        ->setRowHeight(30); // 第一行行高
                                                                                
    // 设置单元格宽度
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('A')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('B')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('C')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('D')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('E')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('F')
        ->setWidth(20);
    $objPHPExcel->getActiveSheet()
        ->getColumnDimension('G')
        ->setWidth(20);
    // 合并
    $objPHPExcel->getActiveSheet()->mergeCells('A1:G1');
    $objPHPExcel->getActiveSheet()->mergeCells('A2:G2');
    $objPHPExcel->getActiveSheet()->mergeCells('A6:G6');
    $objPHPExcel->getActiveSheet()->mergeCells('A11:B11');

    展开全文
  • Laravel - PhpOffice

    2020-06-08 10:53:23
    use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; public function DBExportExcel($data, $newFile) { if(empty($data)){ # 空...

     DBExportExcel:

    use DB;
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    use PhpOffice\PhpSpreadsheet\IOFactory;
    
    public function DBExportExcel($data, $newFile)
        {
            if(empty($data)){   # 空数据
                return [];
            }
            $spreadsheet = new Spreadsheet();
            $sheet = $spreadsheet->getActiveSheet();
    
            # 下标 - title
            $indexs = array_keys(json_decode(json_encode($data[0]),true));
            foreach($indexs as $kindex => $vindex){
                $char = chr($kindex + 65);
                //设置第一栏的标题
                $sheet->getColumnDimension($char)->setAutoSize(true);
                $sheet->setCellValue($char . '1', $vindex);
            }
            # 最大单元列
            $maxColumn = chr(count($indexs) + 64);
            # 编号ID名称
            $id = $indexs[0];
    //        $sheet->setCellValue('A1', 'hotel_id');
    //        $sheet->setCellValue('B1', 'star');
            # 单元格样式
            $styleArray = [
                'fill' => [
                    'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR,
                    'rotation' => 90,
                    'startColor' => [
                        'argb' => '32CD32',
                    ],
                    'endColor' => [
                        'argb' => '32CD32',
                    ],
                ],
            ];
            foreach($data as $k => $v){
                $k += 2;
                # 编号 ID
                if(in_array($v->$id,$this->arr())){
                    $sheet->getStyle('A'.$k.':'.$maxColumn.$k)->applyFromArray($styleArray);
                    $sheet->getStyle('A'.$k)->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);
                }
                foreach($indexs as $kindex => $vindex){
                    $sheet->setCellValue(chr($kindex + 65).$k, $v->$vindex);
                }
    //            $sheet->setCellValue('A'.$k, $v->hotel_id)
            }
    
    //        $writer = new Xlsx($spreadsheet);
    //        $writer->save('test.xlsx');
    //        die;
    //        $filename = $newFile . $this->ext;
    
            $filename = $newFile;
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
            header('Content-Disposition: attachment;filename="'.$filename.'"');
            header('Cache-Control: max-age=0');
            $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
    //        $writer->save('php://output');
            $writer->save(public_path().'/'.$filename);
            return;
        }

    ExcelImportDB:

    public function ExcelImportDB($inputFile, $highestRow){
            $spreadsheet = IOFactory::load($inputFile);
            $excelSheet = $spreadsheet->getSheet(1);// 读取第一个工作表         
    //        $highestRow = $excelSheet->getHighestRow();// 取得总行数 
            $highestColumn = $excelSheet->getHighestColumn();// 取得总列数
            # 数据存储arr
            $arr = [];
            $title = [];
            # 读取Excel数据
            for($i=1; $i<=$highestRow; $i++){
                # title
                if($i == 1){
                    for($t='A'; $t<=$highestColumn; $t++){
                        $tmp = $excelSheet->getCell( $t.$i)->getValue();
                        $title[] = strtolower(str_replace(' ','_',$tmp));
                    }
                    continue;
                }
    
                if(empty($title)){
                    return [];
                }
                # getCellValue
                $row = [];
                for($j='A'; $j<=$highestColumn; $j++){
                    # nil data , break;
                    if(empty($excelSheet->getCell('A'.$i)->getValue())){
                        break;
                    }
                    $row[] = $excelSheet->getCell($j.$i)->getValue();
                }
                #
                if(empty($row)){
                    break;
                }
                # 导入db - excel,获取列并加入标识字段 ----------------------------abcdefg
                $next = ord(strtolower($highestColumn)) + 1;
                $columns = range('a',chr($next));
    
                $res = DB::insert('insert into excel ('.implode(',',$columns).') values (...)');
            }
            return;
        }

     

    展开全文
  • PHPOffice 导入

    2019-10-07 12:51:10
    1.因为Phpexecel已经停止维护,所以要使用心得phpoffice; 2.注意引入  usePhpOffice\PhpSpreadsheet\Helper\Sample; usePhpOffice\PhpSpreadsheet\IOFactory; usePhpOffice\PhpSpreadsheet\Spreadsheet; ...

    1.因为Phpexecel已经停止维护,所以要使用心得phpoffice;

    2.注意引入    

    use PhpOffice\PhpSpreadsheet\Helper\Sample;
    use PhpOffice\PhpSpreadsheet\IOFactory;
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
    use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
    use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
    use PhpOffice\PhpSpreadsheet\Cell\DataType;
    use PhpOffice\PhpSpreadsheet\Style\Fill;
    use PhpOffice\PhpSpreadsheet\Style\Color;
    use PhpOffice\PhpSpreadsheet\Style\Alignment;
    use PhpOffice\PhpSpreadsheet\Style\Border;

    3.上代码

    /**
     * 使用PHPoffice导入
     *
     * @param string $file      文件地址
     * @param int    $sheet     工作表sheet(传0则获取第一个sheet)
     * @param int    $columnCnt 列数(传0则自动获取最大列)
     * @param array  $options   操作选项
     *                          array mergeCells 合并单元格数组
     *                          array formula    公式数组
     *                          array format     单元格格式数组
     *
     * @return array
     * @throws Exception
     */
    function importExecl($file = '', $sheet = 0, $columnCnt = 0, $options = [])
    {
        try {
            $file = 'E:/fast/public/uploads/20190910/aeb86ef4be998d313886f6276879bb24.xls';
            /* 转码 */
            $file = iconv("utf-8", "gb2312", $file);

            if (empty($file) OR !file_exists($file)) {
               echo '文件不存在';
               exit;
            }
            /** @var Xlsx $objRead */
            $objRead = IOFactory::createReader('Xlsx');

            if (!$objRead->canRead($file)) {
                /** @var Xls $objRead */
                $objRead = IOFactory::createReader('Xls');

                if (!$objRead->canRead($file)) {
                    throw new \Exception('只支持导入Excel文件!');
                }
            }
            /* 如果不需要获取特殊操作,则只读内容,可以大幅度提升读取Excel效率 */
            empty($options) && $objRead->setReadDataOnly(true);
            /* 建立excel对象 */
            $obj = $objRead->load($file);
            /* 获取指定的sheet表 */
            $currSheet = $obj->getSheet($sheet);

            if (isset($options['mergeCells'])) {
                /* 读取合并行列 */
                $options['mergeCells'] = $currSheet->getMergeCells();
            }
            if (0 == $columnCnt) {
                /* 取得最大的列号 */
                $columnH = $currSheet->getHighestColumn();
                /* 兼容原逻辑,循环时使用的是小于等于 */
                $columnCnt = Coordinate::columnIndexFromString($columnH);
            }
            /* 获取总行数 */
            $rowCnt = $currSheet->getHighestRow();
            $data   = [];
            
            /* 读取内容 */
            for ($_row = 1; $_row <= $rowCnt; $_row++) {
                $isNull = true;
                for ($_column = 1; $_column <= $columnCnt; $_column++) {
                    $cellName = Coordinate::stringFromColumnIndex($_column);

                    $cellId   = $cellName . $_row;
                    $cell     = $currSheet->getCell($cellId);
        
                    if (isset($options['format'])) {
                        /* 获取格式 */
                        $format = $cell->getStyle()->getNumberFormat()->getFormatCode();
                        /* 记录格式 */
                        $options['format'][$_row][$cellName] = $format;
                    }
                    if (isset($options['formula'])) {
                        /* 获取公式,公式均为=号开头数据 */
                        $formula = $currSheet->getCell($cellId)->getValue();
                        
                        if (0 === strpos($formula, '=')) {
                            $options['formula'][$cellName . $_row] = $formula;
                        }
                    }
                    if (isset($format) && 'm/d/yyyy' == $format) {
                        /* 日期格式翻转处理 */
                        $cell->getStyle()->getNumberFormat()->setFormatCode('yyyy/mm/dd');
                    }
                    $data[$_row][$cellName] = trim($currSheet->getCell($cellId)->getFormattedValue());

                    if (!empty($data[$_row][$cellName])) {
                        $isNull = false;
                    }
                }
                /* 判断是否整行数据为空,是的话删除该行数据 */
                // if ($isNull) {
                //     unset($data[$_row]);
                // }
            }
            return $data;
        } catch (\Exception $e) {
            throw $e;
        }

    转载于:https://www.cnblogs.com/PLasir/p/11506764.html

    展开全文
  • Laravel使用PhpOffice示例

    2021-08-28 13:33:54
    Laravel使用PhpOffice示例添加一个controller类excel内容excel导入输出结果 添加一个controller类 testController.php <?php namespace App\Http\Controllers\Web; use Illuminate\Http\Request; use PhpOffice...
  • use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; /** * [数据导出] * @return [type] [description] */ f
  • composer安装的phpoffice/phpexcel包,现在composer官网提示不更新了,但是还是可以使用的
  • PhpOffice这是一个强大的PHP库用于创建Word文件。事实上许多办公软件可以打开.docx文件(Office Open XML) 。利用这个库可以插入文本、Text分段、页分段、页头/页脚、表格、列表元素、超链接、并进行格式化。
  • phpoffice/phpspreadsheet 操作导入导出

    千次阅读 2019-11-14 17:46:27
    下载phpoffice/phpspreadsheet composer require phpoffice/phpspreadsheet 1.8.2 这个版本兼容PHP5和PHP7 1、新建Excel.php文件 <?php namespace app\admin\controller; use PhpOffice\...
  • 1、安装PhpOffice\PhpSpreadsheet composer require phpoffice/phpspreadsheet 2、引入 use PhpOffice\PhpSpreadsheet\Helper\Sample; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\...
  • PHPoffice中的phpword中addWatermark()文档说的是可以添加水印,测试之后发现只能在页眉中使用(页脚没有测试); 我的方法是使用模板替换,在word中先编辑好 public function fxfjgkzd($info, $path = 'word/3.docx...
  • composer require phpoffice/phpspreadsheet 类文件引入扩展 use PhpOffice\PhpSpreadsheet\Reader\Xls; use PhpOffice\PhpSpreadsheet\Shared\Date; 导入方法 public function import(){ //实例化xls类 ....
  • composer require phpoffice/phpexcel 2. 导出数据封装 在TP中使用时可以将以下类文件放入 extend 目录 <?php /** * 导出数据 * PHP7.2版本以下推荐使用 phpoffice/phpexcel * PHP7.2版本以上推荐使用 ...
  • 安装phpoffice/phpspreadsheet环境OneinStack安装ext-fileinfo这个扩展 Composer安装phpoffice/phpspreadsheet 1.添加"phpoffice/phpspreadsheet":"1.8.*"到composer.json 2.执行composer install 报错 1 首先出现...
  • PHP phpoffice/phpspreadsheet导出excel ...注意:这里使用的是tp6框架做测试 ...安装命令:composer require ...安装成功后,会在vendor目录下成一个目录:phpoffice 第二步:后端代码处理 **注意:顶部引入第三方类库 use
  • phpoffice.rar

    2020-09-10 11:01:39
    因项目需求没有composer,只能直接引用phpword,增加了自动加载,无需各个引用,最后集成一个压缩包可以直接引用,及最有可能遇到的坑zip不能关闭的等问题。
  • //先自行使用composer下载phpoffice到项目文件夹 //官网地址:https://phpspreadsheet.readthedocs.io/en/latest/ //安装命令:composerrequirephpoffice/phpspreadsheet //引入自动加载 require"./vendor/autoload....
  • phpoffice/phpspreadsheet (export)使用 composer 安装 composer require phpoffice/phpspreadsheet(会自动根据当前的php环境变量安装对应的版本) 调用对应的类 use PhpOffice\PhpSpreadsheet\Spreadsheet...
  • 在开发中经常遇到从Excel中读取数据内容的场景,这里使用PHPOffice库来实现,如下namespace AppServicesMisc;use Exception;use PhpOfficePhpSpreadsheetReaderXlsx;use PhpOfficePhpSpreadsheetReaderXls;use ...
  • <p>I'm using using PhpOffice library. Is there any option how to replace Variable in docx file with ordered list? <p>With templateProcessor method setComplexValue I can add text with code <pre>...
  • PHPExcel已经被废弃在PHP7.2中已经无法获取更新,官方重新... composer安装:电脑/服务器上安 composer require phpoffice/phpspreadsheet ... use PhpOffice\PhpSpreadsheet\Spreadsheet;...use PhpOffice\PhpSprea...
  • PHPOffice/PHPExcel 中文文件名乱码

    千次阅读 2018-06-04 12:02:58
    场景 ....??) 现在需要做一个自动发送日报的邮件服务, 肯定是是需要excel的 . 选择excel肯定首选 `PHPOffice... 所以只能选择一个2015就已经停更的 `PHPOffice/PHPExcel`(且缺少官方文档) . 导出文件名是中文乱码 ...
  • composer require phpoffice/phpspreadsheet 2、导出类Export,放在服务层: <?php namespace app\backend\service; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php...
  • 背景介绍 因公司产品的营销活动被羊毛党盯上,导致现有批量结算系统暂不满足需求,所以采取数据分析师分析数据...phpoffice/phpexcel扩展 <?php /** * * * User: 原子酱 * Date: 2019/9/23 * Time: 17:36 ...
  • composer require phpoffice/phpexcel 注:phpexcel不再维护,推荐使用phpspreadsheet, composer require phpoffice/phpspreadsheet PhpOffice.php class PhpOffice { private $excel; private $writer; ...
  • 1 tp框架导入phpoffice/phpexcel包 composer require phpoffice/phpexcel 2 上传文件名为excel.xlsx的文件并存储在了public/storage/xlsx目录下 $file = request()->file('excel'); $file->...
  • 除了每个PHPOffice库的先决条件外,该捆绑包还要求: * PHP 5.6 or higher * Symfony 3.4 or higher 安装 使用composer需要最新的稳定版本。 $ composer require yectep/phpspreadsheet-bundle 如果您不使用Flex...
  • 使用PhpOffice\PhpSpreadsheet实现。 使用composer安装PhpSpreadsheet到你的项目: composer require phpoffice/phpspreadsheet 直接上代码: // 这里为tp框架model层查询出来的数据,并转换为数组形式 $...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,660
精华内容 1,064
关键字:

phpoffice