三种解决方案
当遇到excel预览的需求时,通常会有三种解决方案:
- 1.将excel转化为pdf。----这种方式当遇到excel比较大时,会将excel分段截取展示,很影响阅读。
- 2.后台读取excel内容,返回给前端做渲染。----这种方式只能定义固定模板,并且工作量巨大。
- 3.将excel转化为html。----这种方式一般采用第三方工具,效果也很不错,本文主要讲解这种方式在python中的实现过程。
解决思路
本文主要是借助了wps的转化功能,通过python来调取wps,从而实现这一转换。
基本环境
1. windows系统(本文仅使用与windows系统)
2. 安装wps office
3. 安装win32com: pip install pypiwin32
核心代码
# 初始化 (不做该操作在多线程时会报错)
pythoncom.CoInitialize()
# 调用wps的com接口
w = win32com.client.gencache.EnsureDispatch('Ket.Application')
# 后台运行,不显示,不警告
w.Visible = 0
w.DisplayAlerts = 0
# 选定file文件
workbook = w.Workbooks.Open(file)
# 另存file文件,44即html格式
workbook.SaveAs(file.split('.')[0], FileFormat=44)
w.Quit()
# 释放资源
pythoncom.CoUninitialize()
com接口相关
这个涉及到vb编程,FileFormat对应的参数值可查阅vba_help中的VBAXL10.CHM,在这里不做深入探讨。