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

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

9 Март 2021, 01:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Избавиться от "0" в ячейки  (Прочитано 3305 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alex16
Форумчанин
***
Offline Offline

Сообщений: 114


« Стартовое сообщение: 17 Ноябрь 2016, 15:21 »

Подскажите пожалуйста, как сделать так, что бы ноль в ячейке не выставлялся, если в ячейке пусто(ну т.е. было там число, нажали Del),
когда записываю их так:
   ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).setValue(ThisComponent.Sheets(0).getCellByPosition(C, R).GetValue)
Если так писать:
   ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).SetString(ThisComponent.Sheets(0).getCellByPosition(C, R).GetString)
то ноля нет, но и числа, становятся не числами.
Записан
mikekaganski
Гуру
*******
Offline Offline

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


« Ответ #1: 17 Ноябрь 2016, 15:32 »

Формат числа: 0,00;-0,00;"" (для русского)
Записан

С уважением,
Михаил Каганский
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 061


iMac, LibreOffice и Apache OpenOffice


« Ответ #2: 17 Ноябрь 2016, 15:42 »

Формат числа: 0,00;-0,00;"" (для русского)
Это чтобы скрыть нуль, а чтобы не записывался в ячейку, нужно обрабатывать логически: "IF пусто, THEN "" ELSE значение
Записан

Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 067


« Ответ #3: 17 Ноябрь 2016, 15:45 »

Формат ячеек - Числовой - ведущие нули =0 пробовали?

Цитата:
Это чтобы скрыть нуль, а чтобы не записывался в ячейку
а что бы не было копировать  copyRange
« Последнее редактирование: 17 Ноябрь 2016, 15:50 от Bigor » Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
Alex16
Форумчанин
***
Offline Offline

Сообщений: 114


« Ответ #4: 17 Ноябрь 2016, 16:26 »

"IF пусто, THEN "" ELSE значение
Спасибо. Сделал так:
Код:
if ThisComponent.Sheets(0).getCellByPosition(C, R).Type = com.sun.star.table.CellContentType.VALUE then
  ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).SetValue(ThisComponent.Sheets(0).getCellByPosition(C, R).GetValue)
else if ThisComponent.Sheets(0).getCellByPosition(C, R).Type = com.sun.star.table.CellContentType.EMPTY then
ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).ClearContents(1023)
else
   MsgBox "Не Число! Данные потеряются!"
   ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).ClearContents(1023)
endif
endif
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 067


« Ответ #5: 17 Ноябрь 2016, 16:38 »

а так не работает?

Код:
ThisComponent.Sheets(0).CopyRange(ThisComponent.Sheets(0).getCellByPosition(C, R).getCellAddress(), ThisComponent.Sheets(1).getCellByPosition(Indx * 6 + N, R - StartColRow).getRangeAddress())
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
economist
Форумчанин
***
Offline Offline

Сообщений: 1 398


« Ответ #6: 17 Ноябрь 2016, 16:39 »

Сервис - Параметр - Calc - Вид - Нулевые значения
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Alex16
Форумчанин
***
Offline Offline

Сообщений: 114


« Ответ #7: 17 Ноябрь 2016, 21:29 »

а так не работает?
не пробовал, но метод CopyRange взял на заметку.
Сервис - Параметр - Calc - Вид - Нулевые значения
не, так не пойдет)
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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