无法使用 Excel JavaScript API 设置 NumberFormat

Posted

技术标签:

【中文标题】无法使用 Excel JavaScript API 设置 NumberFormat【英文标题】:Can't set NumberFormat with Excel JavaScript API 【发布时间】:2020-04-24 14:49:16 【问题描述】:

我正在使用 excel javascript API,在搜索完文档后,仍然找不到我想要实现的解决方案。

所以我想将所有内容都设置为数字格式“文本”,这样 Excel 的自动格式不会与任何单元格的内容混淆(不会删除前导零或更改日期格式)。

文档建议通过以下方式更改格式:

Worksheets("Sheet1").Range("A17").NumberFormat = "General"

但似乎工作表对象不包含 Range 方法。

相反,我尝试在我的桌子上使用 getRange 方法,如下所示:

constructionTable.getRange().NumberFormat = "Text"

这没有引发任何错误,但似乎没有做任何事情。

格式化表格范围以前适用于这样的东西:

constructionTable.getRange().format.autofitColumns()

所以我也检查了constructionTable.getRange().range.format是否包含一个名为NumberFormat或numberFormat的方法,但它没有:(

有人在这方面取得过成功吗?

【问题讨论】:

旁注:Worksheets("Sheet1").Range("A17").NumberFormat = "General" 是 VBA,而不是 JS API。 【参考方案1】:

欢迎来到 Office JS,Tluther。是的,工作表没有 numberFormat API。如果要设置整个工作表,可以使用 getUsedRange() 获取工作表中使用的范围。您可以使用 range.numberFormat = '@' 将其设置为文本;

这里是示例代码:

  await Excel.run(async (context) => 
    const sheet = context.workbook.worksheets.getItem("Sample");

    const range = sheet.getUsedRange();
    range.numberFormat = '@';
    await context.sync();
  );

文档可以在here找到

【讨论】:

@ 工作得很好,但我似乎无法让它做任何其他事情你能再举一两个例子吗? range.numberFormat = '0'; 也为我工作,谢谢!

以上是关于无法使用 Excel JavaScript API 设置 NumberFormat的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript / JQuery 将 html 表数据导出到 Excel 在 Chrome 浏览器中无法正常工作

Javascript fetch api:无法检索某些响应标头

无法将音频文件上传到 Cloudinary API(使用 javascript)

typeScript中的函数

使用 closedxml 从 web api 下载 excel 文件

实习生4无法使用Dojo Loader和ArcGIS JavaScript API