php excel转html,PHP-上传excel转换HTML输出

6eec65c3e4c7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

这个方法是借助phpoffice/phpexcel来完成的,话不多说,我们直接上码

/**

* 安装excel处理类 composer require phpoffice/phpexcel

* @return hinkesponseJson

* @throws PHPExcel_Reader_Exception

* @throws PHPExcel_Writer_Exception

* Created on 2018/12/26 23:29

* Created by Dh

*/

public function excelToHtml()

{

return $this->apiSuc(ActionExcel::excel2html(request()->file()));

}

/**

* 逻辑处理

* 将excel生成HTML

* @param $data 上传的excle文件对象

* @return array 更加excel的sheet生成的HTML文件访问路径数组

* @throws PHPExcel_Reader_Exception

* @throws PHPExcel_Writer_Exception

* Created on 2018/12/26 23:27

* Created by Dh

*/

public static function excel2html($data)

{

$obj = $data['file'];

//上传文件

$info = $obj->move(ROOT_PATH . 'public' . DS . 'uploads'. DS . 'file');

$filePath = $info->getPathname();

$externsion = $info->getExtension();

$fileFullName = $info->getFilename();

$htmlName = str_replace('.' . $externsion, '', $fileFullName);

//文件名自动判断文件类型

$fileType = PHPExcel_IOFactory::identify($filePath);

$objReader = PHPExcel_IOFactory::createReader($fileType);

$objPHPExcel = $objReader->load($filePath);

$sheetIndex = $objPHPExcel->getSheetCount();

$objWriter = new PHPExcel_Writer_HTML($objPHPExcel);

//可以将括号中的0换成需要操作的sheet索引

$sheetHtml = [];

for ($i = 0;$i < $sheetIndex;$i++) {

//这里记得将文件名包含进去

$savePath = ROOT_PATH . 'public' . DS . 'uploads' . DS . 'html' . DS . $htmlName . '_' . ($i+1) . '.html';

$objWriter->setSheetIndex($i);

//保存为html文件

$objWriter->save($savePath);

$downloadPath = config('setting.site_url') . '/uploads/html/'. $htmlName . '_' . ($i+1) . '.html';

array_push($sheetHtml, $downloadPath);

}

return $sheetHtml;

}

这里是集成在thinkphp5中的写法,其他框架或者直接原生代码,实现的逻辑都是一样的.那么我们再次梳理一遍

1. 上传文件

2. 读取文件

3. 写入HTML文件

4. 输出新的HTML文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值