Изменение формата чисел в таблице Writer

Автор rvi, 13 апреля 2015, 15:19

0 Пользователи и 1 гость просматривают эту тему.

rvi

Добрый день! Имеется частично заполненная таблица в документе Writer. Числа представлены в текстовом формате. Необходимо перевести числа в числовой формат.
Проделано:
1. Переформатирование имеющейся таблицы (Таблица — Числовой формат — Числовой — Standrd или «-1234,12»). Все числа приняли значение «0» или «0,00».
2. Выделение и копирование имеющейся таблицы в новую таблицу, отформатированную в числовом формате. Все числа копируются в текстовом формате.
3. Копирование в отдельности каждого числа имеющейся таблицы в новую таблицу, отформатированную в числовом формате. Большая трудоёмкость.
4. Ручное копирование данных через их набор на клавиатуре. Большая трудоёмкость.
5. Ведение таблицы в смешанной форме: старые данные в текстовом формате, новые данные в числовом формате. Пока нежелательно.
Вопрос: Есть ли ещё какие-либо способы перевода чисел из текстового формата в числовой?
ПК: Windows 7 домашняя расширенная, 64-bit, редактор LibreOffice 4.4.2.2

rami

А распознавание чисел и форматов у вас включено?

rvi

Цитата: rami от 13 апреля 2015, 13:54А распознавание чисел и форматов у вас включено?
Да, распознавание чисел и форматов в настройках LibreOffice Writer и LibreOffice Writer/Web включено

rami

Я уже начинаю думать что это может быть баг. У меня наличие или отсутствие "птичек" не влияет на распознавание чисел — цифры всегда записываются как текст, но при вычислениях распознаются как числа. Результат вычислений всегда числовой независимо от указанных настроек или форматов, если только не выставить текстовый формат перед вычислениями.

А в новом документе новая таблица как реагирует на ввод чисел и вычисления? Если неправильно, то выложите образец, посмотрим.

На снимке по левому краю выровнены числа в текстовом формате, а по правому результаты вычислений в числовом(я не менял ни форматы, ни выравнивание)

rvi

Цитата: rami от 13 апреля 2015, 20:26У меня наличие или отсутствие "птичек" не влияет на распознавание чисел — цифры всегда записываются как текст, но при вычислениях распознаются как числа. Результат вычислений всегда числовой независимо от указанных настроек или форматов, если только не выставить текстовый формат перед вычислениями.А в новом документе новая таблица как реагирует на ввод чисел и вычисления? Если неправильно, то выложите образец, посмотрим.
Заполнение новой таблицы в новом документе стандартное: числа записываются как текст, результаты вычислений - как числа. Более того: данная проблема с вычислением суммы наблюдается в старой таблице, а также при копировании в другую таблицу данных двух и более ячеек в один приём. Если каждое число копировать в другую таблицу отдельно, то вычисление суммы осуществляется без проблем.
Отличие старой таблицы от новой:
1. Бланк старой таблицы создан 3 года назад в редакторе OpenOffice.
2. При создании бланк был предварительно отформатирован в формате «Текст».

rami

Цитата: rvi от 13 апреля 2015, 13:19Вопрос: Есть ли ещё какие-либо способы перевода чисел из текстового формата в числовой?
Их есть у меня 8-)
Сделайте копию документа(на всякий случай) и выполните макрос:
Sub Main
t=ThisComponent.TextTables
For j=0 To t.Count-1
cn=t(j).CellNames
For i=0 To UBound(cn)
c=t(j).getCellByName(cn(i))
If c.Type=2 Then If Val(c.String)<>0 Then c.Value=CDbl(c.String)
Next
Next
End Sub

Все числа(в текстовом формате) во всех таблицах документа станут настоящими числовыми числами в числовом формате ;D
Этот макрос будет работать в тех локалях, где разделитель дробной части запятая.
Сообщите как оно случилось.

rvi

Цитата: rami от 14 апреля 2015, 21:39Сделайте копию документа(на всякий случай) и выполните макрос
Спасибо. С макросами ещё не работал, буду осваивать. Результат сообщу.

rvi

Цитата: rami от 14 апреля 2015, 21:39Сделайте копию документа(на всякий случай) и выполните макрос
Добрый день, rami! Ваш макрос в моей таблице работает, все числа формата «Текст» переведены в формат «Standard». Но свободные ячейки таблицы, куда мне нужно занести результаты вычислений, остаются в формате «Текст». Поэтому результат всё равно записывается как «0».
Поскольку причиной проблемы является предварительное форматирование таблицы, я переделываю бланк таблицы без проведения предварительного форматирования. Но тут появляется первопричина проблемы: результаты вычислений записываются в формате «Standard» и некоторые из них, например, «1234,50» превращается в «1234,5», то есть ноль отбрасывается. Ситуация осложняется тем, что в таблице имеются две строки «Сумма»:
1. В одну записываются целые числа, то есть нужно применять формат «Стандарт».
2. Во вторую записываются числа с десятичной дробью, то есть нужно применять формат «1234,12».
Возможно ли решение в такой ситуации?

rami

#8
Цитата: rvi от 17 апреля 2015, 17:48Но свободные ячейки таблицы, куда мне нужно занести результаты вычислений, остаются в формате «Текст». Поэтому результат всё равно записывается как «0».
Макрос перезаписывает числа в числовой формат, но не затрагивает пустые ячейки и ячейки с текстом.
Цитата: rvi от 17 апреля 2015, 17:48Ситуация осложняется тем, что в таблице имеются две строки «Сумма»:
1. В одну записываются целые числа, то есть нужно применять формат «Стандарт».
2. Во вторую записываются числа с десятичной дробью, то есть нужно применять формат «1234,12».
Для этого макрос не нужен. Достаточно применить нужный формат к числовым и пустым ячейкам.
1. Выделите все ячейки(в том числе пустые) которые должны иметь одинаковый формат и примените его.
2. Тоже самое для любого другого блока ячеек.
Если вдруг понадобиться примените макрос ещё раз.

rvi

Цитата: rami от 17 апреля 2015, 20:01Для этого макрос не нужен. Достаточно применить нужный формат к числовым и пустым ячейкам.1. Выделите все ячейки(в том числе пустые) которые должны иметь одинаковый формат и примените его.2. Тоже самое для любого другого блока ячеек.Если вдруг понадобиться примените макрос ещё раз.
Большое спасибо