有个需求,用户上传的office文件能在线转成htm存储,方便其他人直接浏览。baidu了一些,pywin32,openxl,pandas都行,其中pywin32调用win32com直接转存最方便,代码量最少,word和ppt都搞定了,就是excel一直报错,换成openxl,pandas代码多,而且转存时保留单元格背景、字体颜色要另外加各种判断,非常麻烦。没办法回过头又来找win32,虽然知道是转存时的格式问题,但是不知道怎么解决。ppt和word在转存时直接写doc.SaveAs(output, 8)就行了,excel就报错,肯定是8代表的fileformat不对。但是不知道是啥。xlmain11.chm也找不到。百度n久,重要找到,fileformat 为44就行了。excel格式版本非常多,所以fileformat根本与word,ppt不一样。代码
def xls2htm(self,excelpath,htmpath):
w= Dispatch('Excel.Application')
try:
excel=w.Workbooks.Open(excelpath, ReadOnly=1)
excel.SaveAs(htmpath,44)
w.Quit()
return True
except Exception as e:
w.Quit()
print(e)
return False