Quand j'ai essayer de mettre une longuets nom de feuille de calcul à l'aide de ruby et win32ole avec le code suivant:
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
Je reçois le texte suivant:
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>'
La version 12.0 indique que je suis sous Excel 2007, mais c'est pour se plaindre que le nom de la feuille est trop long. J'ai eu un coup d'oeil à Excel 2007 spécifications et limites comme indiqué dans cette réponse, et je ne parvenais pas à trouver de mentionner cette limite. (En essayant de renommer une feuille de calcul manuellement suggère il peut y avoir une telle limite, toutefois)
Est-il une limite, et c'est une dure limite ou une qui peut être modifiée en changeant la configuration d'Excel?