Excel工作表的名称长度是否有限制?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (212)

当我尝试使用ruby和win32ole设置一个长工作表名时,使用以下代码:

require "win32ole"
excel = WIN32OLE.new('Excel.Application')
excel.Visible = 1
puts excel.version
workbook = excel.Workbooks.Add
worksheet1 = workbook.Worksheets.Add
worksheet1.Name = "Pseudopseudohypoparathyroidism" #Length 30, fine
worksheet2 = workbook.Worksheets.Add
worksheet2.Name = "Supercalifragilisticexpialidocious" #Length 34, not fine

我得到以下信息:

12.0
-:9:in `method_missing': (in setting property `Name': ) (WIN32OLERuntimeError)
    OLE error code:800A03EC in Microsoft Office Excel
      You typed an invalid name for a sheet or chart. Make sure that:

 The name that you type does not exceed 31 characters.
 The name does not contain any of the following characters:  :  \  /  ?  *  [  or  ]
 You did not leave the name blank.
    HRESULT error code:0x80020009
      Exception occurred.
        from -:9:in `<main>'

是否有限制,是硬限制还是可以通过更改Excel配置来更改的限制?

提问于
用户回答回答于

文件格式允许最多255个字符的工作表名称,但如果ExcelUI不希望您超过31个字符,请不要尝试超过31个字符。应用程序充满了奇怪的、无文档化的限制和怪癖,并将符合规范但不在测试人员测试范围内的文件提供给它,通常会导致非常奇怪的行为。(个人最喜欢的示例:使用Excel4.0字节码作为if()函数,在一个具有Excel 97风格的字符串的文件中禁用Excel 97中粗体的工具栏按钮。)

用户回答回答于

在Excel中手动重命名工作表,将达到31个字符的限制,因此我建议这是一个硬限制。

扫码关注云+社区