я могу программно установить формат номера ячейки?

У меня есть надстройка excel js с настраиваемыми функциями, некоторые из них должны возвращать дату, и здесь у меня проблема:

  • Я могу форматировать и отображать эту дату в виде строки, но в этом случае я не могу использовать эту дату в качестве даты в формулах. или
  • Я могу использовать его '.ToOADate' и использовать его везде как дату, но он выглядит как число, но не как дата, пока я не установлю правильный формат числа вручную.

Итак, вот вопрос: могу ли я программно установить числовой формат «короткой даты», как это происходит, когда я использую функцию «= ДАТА»?


person Viktor AV    schedule 29.06.2020    source источник


Ответы (1)


Добро пожаловать в Office JS!

Я думаю, вы могли бы использовать range.numberFormat API, чтобы установить формат диапазона. формат краткого номера даты в en-us: m / d / yyyy

range.numberFormat = "m/d/yyyy";

Между тем, в журнале ожидания пользовательской функции есть элемент запроса функции. Мы предлагаем вам отправить свой запрос в uservoice и проголосуйте за эту функцию

person Raymond Lu    schedule 29.06.2020
comment
звучит как план, но как это сделать в случае кастомных функций? когда у меня есть такая конструкция, как экспорт async function fName (params) {return apiRequestResult; // вот у меня свидание} - person Viktor AV; 29.06.2020
comment
Позвольте мне поспрашивать и пригласить команду Custom Function поделиться своим мнением по этому поводу. - person Raymond Lu; 29.06.2020
comment
я был бы рад любому совету или новой идее =) один момент - мы ожидаем, что пользователи будут вызывать десятки или сотни функций за раз, поэтому решения, такие как вызов контекста и поиск адресов каждой ячейки, а затем установка формата, не выглядит достаточно быстро. - person Viktor AV; 29.06.2020
comment
Насколько я понимаю, столбец обычно имеет тот же числовой формат, поэтому вам не нужно устанавливать каждую отдельную ячейку, но вы можете установить весь столбец. В результате возвращаемое значение пользовательской функции может отображаться как дата. - person Raymond Lu; 29.06.2020
comment
Я согласен, что в большинстве случаев это правда, но еще раз представьте: пользователь поместил некоторую функцию, например = myNamespace.myFunc (params), и создал строку или столбец с этой функцией, размер этой строки или столбец я не знаю. и что у нас есть: - функция, которая будет вызываться столько раз, сколько захотят пользователи, - функция работает асинхронно, поэтому в какой момент и как я должен попытаться вычислить диапазон и установить numberFormat? пс извините, но это действительно ускользает от меня - person Viktor AV; 29.06.2020
comment
Только что подтверждено командой Custom Function, эта функция находится в нашем бэклоге. Не могли бы вы отправить свой запрос в пользовательском голосе и проголосовать за эту функцию? officepdev.uservoice.com/forums/ - person Raymond Lu; 30.06.2020
comment
спасибо за помощь и совет! // ps проголосовал и прокомментировал аналогичную идею - person Viktor AV; 30.06.2020
comment
Привет, Рэймонд, ты можешь помочь мне с еще одним вопросом? stackoverflow.com/questions/63459398 / - person Viktor AV; 25.08.2020
comment
Моя коллега ответила на ваш вопрос, пожалуйста, ознакомьтесь с ее ответом - person Raymond Lu; 25.08.2020