当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何在下载Excel文件后默认打开第一个工作簿?

穆鸿飞
2024-04-26

背景:

前端进行下载excel文件下载,打开下载好的excel文件后,发现默认打开的是最后一个工作簿,怎么默认打开第一个工作簿。

下载相关代码如下:

workbook.xlsx.writeBuffer().then(buffer => {    const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });    const url = window.URL.createObjectURL(blob);    const a = document.createElement('a');    a.href = url;    a.download = 'result.xlsx';    a.click();    window.URL.revokeObjectURL(url);});

共有1个答案

胡修伟
2024-04-26

Excel 文件本身并不直接控制哪个工作簿在打开时默认显示。这是由 Excel 应用程序本身控制的,而且不同的 Excel 版本和不同的操作系统可能会有不同的行为。

然而,你可以在生成 Excel 文件时,通过修改工作簿的默认活动工作表来达到你的目的。在 xlsx 库中,你可以使用 workbook.SheetNames 来获取所有工作簿的名称,然后使用 workbook.SheetNames[0] 来获取第一个工作簿的名称。然后,你可以设置该工作簿为活动工作簿:

workbook.xlsx.writeBuffer().then(buffer => {    const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });    const url = window.URL.createObjectURL(blob);    const a = document.createElement('a');    a.href = url;    a.download = 'result.xlsx';    a.click();    window.URL.revokeObjectURL(url);    // 设置第一个工作簿为活动工作簿    const sheetName = workbook.SheetNames[0];    workbook.SheetNames.push(workbook.SheetNames.splice(workbook.SheetNames.indexOf(sheetName), 1)[0]);});

这段代码会将第一个工作簿的名称移动到工作簿名称列表的最后,从而使其成为活动工作簿。但是,这并不能保证所有 Excel 版本和操作系统都会按照这种方式工作。因为如前所述,这更多地是由 Excel 应用程序本身控制的。

 类似资料:
  • 问题内容: 我的程序成功创建并填充了Excel(.xls)文件。创建完成后,我希望在系统的默认程序(以Excel为例)中打开新文件。我该如何实现? 对于我想在记事本中打开txt文件的旧程序,我使用了以下命令: 当我尝试将此代码用于Excel文件时,出现以下错误: 有什么建议吗? 问题答案: 尝试使用Desktop.open()而不是Desktop.edit(): 如果Desktop.open()不

  • 问题内容: 我想在JavaScript中打开文件浏览器,并为此文件浏览器设置默认目录。例如,我想将默认目录设置为“ C:\ My Documents”。 如何设置默认目录?最好使用,其他控件也可以。 问题答案: 这是不可能的,因为让网站代码在计算机上设置任何值都是安全隐患。 另外,您永远不能确保该目录存在。如果我使用Mac,该怎么办?我的东西进来了。如果我在Windows上安装了Windows,该

  • 我有一个由几张纸组成的excel文件。我需要分别将它们作为单独的数据帧加载。与pd类似的功能是什么。对于此类任务,请阅读“\u csv”(“”)? 附注:由于大小,我不能在excel中复制和粘贴单独的工作表

  • 问题内容: 如何打开一个Excel文件以便在Python中读取? 例如,我已经使用read命令打开了文本文件。如何为Excel文件执行此操作? 问题答案: 编辑: 在较新版本的pandas中,您可以将工作表名称作为参数传递。 检查文档以获取有关如何通过的示例sheet_name:https : //pandas.pydata.org/pandas-docs/stable/generation/pa

  • 如何更改默认的目录在Netbean 8.2JavaSE\ME\EE? 我已经编辑了我的文件行,但这只适用于项目。我试图在不打开整个项目的情况下打开单个文件。在"C:\用户\MYNAME\AppData\漫游\NetBeans\8.2\配置\首选项\org\netbean\模块"下找到文件(Windows)

  • 我正在使用Apache POI生成. xlsx文件。 我想从Spring controller返回该文件。以下是我到目前为止所做的: 控制器: 是否可以从rest控制器返回实际的excel文件,以便用户可以将其下载到计算机上?至于现在控制器返回字节[],但我想返回它的实际文件。我怎样才能做到这一点?