Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

11 Июль 2020, 11:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Формат даты  (Прочитано 459 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Fiona
Участник
**
Offline Offline

Сообщений: 31


« Стартовое сообщение: 22 Июнь 2020, 12:08 »

Помогите, пожалуйста...
У меня в файле-источнике дата отображается корректно, но при копировании содержимого ячейки в файл-приемник, отображается порядковый номер даты. Если отредактировать формат ячейки, значение принимает удобоваримый вид, но при повторной загрузке снова номер вместо даты. С чем это может быть связано и как это можно исправить?
Спасибо


* формат даты.png (12.75 Кб, 722x218 - просмотрено 6 раз.)

* импорт.png (3.41 Кб, 105x353 - просмотрено 7 раз.)

* исходные данные.png (7.41 Кб, 401x195 - просмотрено 7 раз.)
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 921


« Ответ #1: 22 Июнь 2020, 12:12 »

Из скриншота видно, что "копирование" - это что-то про макросы? тогда уточните, что за код выполняется. А вообще - вероятно, надо будет просто устанавливать формат ячейки, поскольку дата - это всего лишь число дней с нулевой даты, отформатированное как дата. См., например, здесь.
Записан

С уважением,
Михаил Каганский
Fiona
Участник
**
Offline Offline

Сообщений: 31


« Ответ #2: 22 Июнь 2020, 12:31 »

Код:
 If (nOpt = 0) Then 'Заменяем
                            sheetIn.GetCellByPosition(nCol, nStartRow + i).Value = sheet.GetCellByPosition(nCol, nStartRow + i).Value
                            sheetIn.GetCellByPosition(nCol, nStartRow + i).String = sheet.GetCellByPosition(nCol, nStartRow + i).String
                            sheetIn.GetCellByPosition(nCol, nStartRow + i).Formula = sheet.GetCellByPosition(nCol, nStartRow + i).Formula
Изначально в Excel было:
sheetIn.GetCellByPosition(nCol, nStartRow + i).Value = sheet.GetCellByPosition(nCol, nStartRow + i).Value
Но не прокатило, потому что LO не везде String = Value , пропадали значения вообще.
Записан
Fiona
Участник
**
Offline Offline

Сообщений: 31


« Ответ #3: 25 Июнь 2020, 07:19 »

Забавно... Но результата достигла только явно прописав oCellIn.NumberFormat = oCell.NumberFormat. Причем и для дат, и для числовых значений.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!