前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编程方式实现Excel转为JPG/PDF等格式

编程方式实现Excel转为JPG/PDF等格式

作者头像
小锋学长生活大爆炸
发布2022-05-23 10:15:51
7270
发布2022-05-23 10:15:51
举报
文章被收录于专栏:小锋学长生活大爆炸

目录

背景介绍

抓包分析

代码

更新 工具已整合到:1061700625/small-tools


背景介绍

        有一个呼声很高的转换工具叫:aspose,但是只能试用,虽然看起来很强且用起来简单,但没有一个文档讲明白怎么安装的。其他的转换方式要么收费,要么不提供API。

        这里找到一种免费的转换途径,不仅仅支持excel转图片,其他格式转换都可以按照下面代码来实现。(这个网站本质上也是调用的aspose)

网址为:在线转换 Excel (aspose.app)


抓包分析

以下通过抓包查看接口,并包装为Python实现。

1、先准备一个待转换的Excel文档:

 2、进入F12并上传文件转换,抓到链接:

参数解析:

  • 表单数据:excel文件的二进制数据
  • outputType:目标格式,支持很多种:

返回数据如下:

3、点击下载,捕获下载链接:

 发现URL中的参数,就是步骤2中FolderNameFileName

至此,分析完了,该网站的转化也没有涉及什么校验或加密,很容易用Python来模拟。


代码

代码语言:javascript
复制
import os
import requests


def excel2image(filePath, outputType='JPG'):
    fileName = filePath.split(os.sep)[-1]
    url = 'https://api.products.aspose.app/cells/conversion/api/ConversionApi/Convert?outputType={}'.format(outputType)
    files = {"1": (fileName, open(filePath, "rb"))}
    res = requests.post(url=url, files=files).json()
    if res['StatusCode'] == 200:
        print('>> 文件转换完成')
        return res
    else:
        print('>> 文件转换出错:' + str(res))
        return None

def downloadFile(fileName, folderName):
    url = 'https://api.products.aspose.app/cells/conversion/api/Download/{}?file={}'.format(folderName, fileName)
    res = requests.get(url)
    if res.status_code == 200:
        with open(fileName, 'wb+') as f:
            f.write(res.content)
        print('>> 下载文件完成')
    else:
        print('>> 下载文件出错:'+res.text)

if __name__ == '__main__':
    res = excel2image('test.xlsx')
    print(res)
    if res:
        downloadFile(res['FileName'], res['FolderName'])

如果想转为其他类型,改一改outputType即可。

转换后的效果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 抓包分析
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档