为啥我的xlwings不能创建xlsk文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我的xlwings不能创建xlsk文件?相关的知识,希望对你有一定的参考价值。

我的python中的xlwings只能创建xls文件。
workbook.save("ex2.xlsk"),这样写的话就是要报错。
但是把xlsk改成xls就不报错,也能正常保存,求解。

参考技术A 你所说的这种是电子文档的格式,也就是Excel的升级版本,它属于是2017版的,而且使用2007的这种兼容包也是可以正常使用的,现在的Excel表格随着现在的升级和格式的进化,有很多种的这种功能,你所说的这种无法创建这种格式主要就是兼容包,在下载的时候没有相对应的安装,这个时候只需要把兼容包安装完成以后重新启动就可以正常使用。 参考技术B 因为你打错了,应该是xlsx,不是xlsk。xlsx是比较后出的,兼容性不高。服务器类,编辑软件类一般兼容xls。本回答被提问者采纳

为啥 JSZip 不能创建 blob 文件?

【中文标题】为啥 JSZip 不能创建 blob 文件?【英文标题】:Why JSZip can't create blob file?为什么 JSZip 不能创建 blob 文件? 【发布时间】:2019-10-28 05:59:39 【问题描述】:

我在 NodeJS 上尝试 JSZip 来创建一些 ZIP 文件,但我遇到了一个问题。

我正在使用 JSZip 提出的代码:

var JSZip = require('JSZip')
var zip = new JSZip()
zip.file("Hello.txt", "Hello World\n")
zip.generateAsync(type:"blob").then(function(content) 
    //do things here
);

当前代码在 generateAsync

上抛出错误

UnhandledPromiseRejectionWarning:错误:此平台不支持 blob

是否需要安装某些东西,或者我在 zip.file 中设置的数据应该是某种格式?

【问题讨论】:

Node.js can´t create Blobs?的可能重复 这个topic 在我的情况下似乎没有用,因为我不是在尝试创建 Blob,而是尝试从文件创建 ZIP。如果您能详细说明它对我的帮助:) 谢谢 在完全相同的问题上有一个github issue。它被错误地关闭了。 【参考方案1】:

JSZip 在jszip/lib/utils.js:352:15 处抛出此错误,因为support.blob 的值由jszip/lib/support.js 定义(第11 到32 行)。我不知道您的机器,但是在尝试在 NodeJS 中运行此脚本时,我已对其进行调试,得出的结论是 JSZip 检测到不支持 blob,因为未定义 self,因此 line 23 引发错误并且support.blob 设置为 false。

JSZip 似乎支持 Node 上的 Node Buffer 类型 - 以下不会在我的机器上引发任何错误:

// JSZip v3.2.1
// NodeJS v8.10.0
// Ubuntu 18.04
const JSZip = require('jszip');

const zip = new JSZip();
zip.file('hello.txt', 'Hello world\n');
zip
    .generateAsync(type: 'nodebuffer') // blob -> nodebuffer
    .then(console.log);

【讨论】:

nodebuffer 是的!!

以上是关于为啥我的xlwings不能创建xlsk文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从我的 python 脚本创建可执行文件?

问题使用 xlwings操作Excel表报错

xlwingsapi要如何导入

通过 python 中的 xlwings 调整 Excel 中的数字格式

为啥我不能在 android 10 中处理文件? [复制]

为啥我不能运行我的 React Native 项目?