Libreoffice calc ошибка 540

Содержание

  1. xlsxwriter и LibreOffice не показывает результат формулы
  2. 1 ответов
  3. Коды ошибок в LibreOffice Calc
  4. Libreoffice Writer пропадают формулы
  5. Лучи гнева.
  6. LibreOffice: страшный сон бухгалтера
  7. Введение
  8. Изменения с последней проверки в 2015 году
  9. Не дай себя обмануть
  10. Как не надо использовать массивы и векторы
  11. Как дважды ошибиться в макросах
  12. Опечаточки и copy-paste
  13. Странные циклы
  14. Странные условия

xlsxwriter и LibreOffice не показывает результат формулы

Я пытаюсь создать файл Excel с простой формулой:

созданный файл отлично работает в Excel, но при открытии в LibreOffice Calc формула не оценивается. Мне нужно повторно ввести числовые значения, и тогда это сработает.

что я делаю не так?

1 ответов

XlsxWriter не вычисляет результат формулы и вместо этого сохраняет значение 0 в качестве результата формулы. Затем он устанавливает глобальный флаг в файле XLSX сказать, что все формулы и функции должны быть пересчитаны при открытии файла. Это метод, рекомендованный в документации Excel, и в целом он отлично работает с приложениями электронных таблиц. Однако приложения, которые не имеют возможности для расчета формулы, такие как Excel Viewer или некоторые мобильные приложения будут отображать только 0 результатов.

Что касается того, почему пересчет не происходит автоматически, из ask.libreoffice.org ответ:

LibreOffice намеренно не пересчитывает старые электронные таблицы, потому что, поскольку формулы обновляются от версии к версии или между различными программами электронных таблиц, результаты могут быть разными. Перейти к инструментам-параметры-LibreOffice Calc, в разделе «пересчет при загрузке файла» измените два раскрывающихся списка: «Excel 2007 и новее» и «электронная таблица ODF (не сохраненная LibreOffice)» на «всегда пересчитывать». Нажмите кнопку ОК, закройте электронную таблицу и LibreOffice. Теперь откройте файл в LibreOffice, и вы увидите, что Формулы пересчитаны.

также перейдите в меню Сервис-содержимое ячейки и убедитесь, что Автокалькуляция выбранный.

Я подтвердил, что настройка «всегда пересчитывать «или» приглашение » работала для мне. Кроме того, вы всегда можете нажать control-shift-F9.

Источник

Коды ошибок в LibreOffice Calc

В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния .

Ширины ячейки не хватает для отображения содержимого.

Символ в формуле недействителен.

Недопустимый аргумент функции. Например, отрицательное число в функции SQRT() (в этом случае следует использовать IMSQRT()).

Недопустимая операция с плавающей запятой

Вычисление приводит к переполнению определенного диапазона значений.

Ошибка в списке параметров

Недопустимый параметр функции, например, текст вместо числа или доменная ссылка вместо ссылки на ячейку.

Ошибка: нет пары

Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.

Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.

Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».

Функция требует большего количества переменных, например, AND() и OR().

Слишком длинная формула

Компилятор: общее количество внутренних токенов (то есть операторов, переменных, скобок) в формуле превышает 8192.

Слишком длинная строка

Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ.

Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.

Внутренняя ошибка синтаксиса

В стеке вычислений предполагается матрица, но она недоступна.

Внутренняя ошибка синтаксиса

Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.

Внутренняя ошибка синтаксиса

Нет результата (в ячейке отображается #ЗНАЧЕН!, а не Ошибка:519)

Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа.

Внутренняя ошибка синтаксиса

Компилятор создал неизвестный код компиляции.

Внутренняя ошибка синтаксиса

Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе LibreOffice — Параметры Сервис — Параметры — LibreOffice Calc — Вычислить.

Процедура вычисления не сходится

Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.

недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)

Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку.

недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)

Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).

Внутренняя ошибка синтаксиса

Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.

Интерпретатор: ссылки (например, ссылка ячейки на ячейку) чрезмерно инкапсулированы.

Деление на ноль

Оператор деления/если знаменатель равен 0.
Эта ошибка возвращается некоторыми функциями, например:
VARP с менее чем 1 аргументом
STDEVP с менее чем 1 аргументом
ВАР с менее чем 2 аргументами
STDEV с менее чем 2 аргументами
STANDARDIZE с stdev=0
NORMDIST с stdev=0

Вложенные массивы не поддерживаются

Ошибка: Размер массива или матрицы

Неподдерживаемое содержимое встроенного массива

Внешнее содержимое отключено

Происходит, если встречается функция, требующая (повторной) загрузки внешних источников, а пользователь еще не подтвердил перезагрузку внешних источников.

Источник

Libreoffice Writer пропадают формулы

Иногда вставленная формула пропадает, а вместо нее остается просто прямоугольник. В этом году мне что-то с электроникой не везет. Доверять ответственную работу технике нельзя.

Ну и ССЗБ, что латехом не пользуешься!

напишите: номер версии libreoffice и последовательность действий, при которой наблюдается данная ошибка.

4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.

А почему в либре формулы работают чирижопу?

4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.

4.3.3.2. все работает. последовательность нужна для написания отчета об ошибке авторам, без неё ты просто пришел поныть.

Потому что либре- и прочие говноохфисы — порнография для абсолютных неосиляторов. А им пофиг, как формула выглядит: они все равно не понимают, что эта формула значит!

последовательность нужна для написания отчета об ошибке авторам

Вот тебе последовательность воспроизведения другой ошибки:

  • открой LibreOffice Calc;
  • выбери ячейку, контекстное меню, «формат ячейки»;
  • во вкладке «обрамление» добавь сплошные границы дефолтной линией;
  • во вкладке «выравнивание» поставь угол поворота текста 1 градус;
  • примени изменения, нажав OK;
  • наблюдай графические искажения.

Багу уже года полтора, наверное, если не больше. Описан, не исправлен.

Тут только ныть и остаётся, всё равно остальное не действует.

а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?

а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?

Да, третий пункт «чинит». Но это засовывание головы в песок. Ни при каких настройках выравнивания текста ободок не должен так выпирать, это баг.

Вот, кстати, ссылка: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=35510 . Ему уже три с половиной года, оказывается.

а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?

а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?

Когда я поворачиваю текст на один градус, я ожидаю, что он повернётся на один градус, но при этом останется внутри ячейки. И ожидаю, что на границы ячейки поворот никак не будет влиять. Сейчас же текст и границы выбрасывает далеко в сторону.

В багзилле (ссылка была в сообщении выше) есть два вложения-скриншота, «как выглядит» и «как ожидается».

Доверять ответственную работу технике нельзя.

А людям — и подавно. И вообще, 4.3.4.* ещё нестабильна, о чём плач-то? Кстати, как обстоит дело с аппаратным ускорением графики?

Лучи гнева.

Потребовалось набить определённое не самое малое количество формул. И тут эта свистопляска. Самое интересное, что картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто. При сохранении в формат docx вместо формул пусто.

Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.

P.S. грош цена переведённым комментариям исходного кода с немецкого на английский язык, если на ровном месте пропадают данные.

Я не знаю, как там в Дебиане, но в Убунте сборка жутко падучая и какая-то кривая. Правда, формулы у меня не пропадали. Но иногда они рендерятся крайне странно.

Но, конечно, когда возникает такой баг с формулами, лучше всего сделать копию документа и посмотреть, что там происходит в оригинальном XML.

Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.

Не помогает, увы.

Если с тебя требуют doc, пиши сразу в MSOffice. Если не требуют, пиши в latex.

Спасибо, буду иметь в виду, но вывод очевиден. Пока лучше обходить либру стороной.

Если с тебя требуют doc, пиши сразу в MSOffice.

Нюанс, что требуют docx, но docx с формулами, собственно, в либре набираю исключительно формулы, сохраняю в docx, дальше судьба документа меня не интересует — не мой фронт работы.

При сохранении в формат docx вместо формул пусто.

Это, как раз, возможно. По форматам полной совместимости никто не обещал.

Это, как раз, возможно. По форматам полной совместимости никто не обещал.

Нет, нет. Тут не в конвертере дело. Пропадают формулы, у которых

картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто.

Единственное, что радует. Пропадают, кажется, только новые формулы, старые не исчезают.

Как оказалось, по крайней мере в AOO, при такой последовательности действий по умолчанию (растяжение текста относительно нижней части канта) поворачивается не только текст, но и скашиваются боковые грани обрамления, что наглядно видно, если поставить угол поворота, например, 30 градусов. Поэтому сам текст на самом деле остаётся внутри обрамлённой области, отрисовка которой вываливается за пределы «ячейки». Похоже, что это фича такая. Поэтому при малом угле наклона «ромб» обрамления сильно вытягивает. Остаётся непонятным, с чего это вдруг боковые грани обрамления вообще меняют угол при повороте текста?

Это точно. Ло вообще непредсказуем своим поведением.

Ну надо же, почти два года прошло с того сообщения, я и забыть успел. А в свежем (5.2.3.1) LibreOffice всё ещё воспроизводится.

Ага. Не помню, было ли это тогда, но сейчас при выборе угла есть ещё выбор привязки. Можно выбрать привязку к нижней кромке, верней кромке и к середине. По умолчанию выбрана привязка к нижней кромке, что и приводит к такому выбросу. Если поменять на привязку к центру, поведение становится ожидаемым.

Непонятно, зачем только по умолчанию стоит привязка к кромке.

В libreoffice 5.2.3.3 формулы пропадают. Причем все симптомы те же, что описал человек, создавший тему. Последовательность действий установить не удается.

Источник

LibreOffice: страшный сон бухгалтера

LibreOffice — мощный офисный пакет, который бесплатен для частного, образовательного и коммерческого использования. Его разработчики делают замечательный продукт, который во многих сферах используется в качестве альтернативы Microsoft Office. Команде PVS-Studio всегда интересно взглянуть на код таких известных проектов и попробовать найти в них ошибки. В этот раз сделать это было легко. Проект содержит много ошибок, которые могут привести к серьёзным проблемам. В статье будут рассмотрены некоторые интересные дефекты, найденные в коде.

Введение

LibreOffice — очень крупный C++ проект. Поддерживать проект такого объёма — сложная задача для команды разработчиков. И, к сожалению, складывается впечатление, что качеству кода LibreOffice не удаётся уделять достаточного внимания.

С одной стороны, проект просто огромный, не каждый инструмент статического или динамического анализа осилит анализ 13к файлов исходного кода. Столько файлов участвует в сборке офисного пакета вместе со сторонними библиотеками. В основном репозитории LibreOffice хранится около 8к файлов исходного кода. Такой объём кода создаёт проблемы не только разработчикам:

С другой стороны, у проекта много пользователей и требуется найти и исправить как можно больше ошибок. Каждая ошибка может причинять боль сотням и тысячам пользователей. Поэтому большой размер кодовой базы не должен становиться поводом отказаться от использования тех или иных инструментов, способных обнаружить ошибки. Думаю, читатель уже догадался, что речь идёт о статических анализаторах кода :).

Да, использование статических анализаторов не гарантирует отсутствия ошибок в проекте. Однако такие инструменты, как PVS-Studio, способны найти большое количество ошибок ещё на этапе разработки и тем самым уменьшить объём работ, связанных с отладкой и поддержкой проекта.

Давайте посмотрим, что можно найти интересного в исходных кодах LibreOffice, если взять статический анализатор кода PVS-Studio. Возможности запуска анализатора обширны: Windows, Linux, macOS. Для написания этого обзора использовался отчёт PVS-Studio, созданный при анализе проекта на Windows.

Изменения с последней проверки в 2015 году

В марте 2015 года был выполнен первый анализ LibreOffice («Проверка проекта LibreOffice») с помощью PVS-Studio. С тех пор офисный пакет сильно развился как продукт, но внутри всё также содержит множество ошибок. А некоторые паттерны ошибок вообще не поменялись с тех пор. Вот, например, ошибка из первой статьи:

V656 Variables ‘aVRP’, ‘aVPN’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rSceneCamera.GetVRP()’ expression. Check lines: 177, 178. viewcontactofe3dscene.cxx 178

Эта ошибка исправлена, но вот что нашлось в самой последней версии кода:

V656 Variables ‘aSdvURL’, ‘aStrURL’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pThm->GetSdvURL()’ expression. Check lines: 658, 659. gallery1.cxx 659

Как вы могли заметить, едва различимые составные имена функций до сих пор являются источником ошибок.

Ещё один интересный пример из старого кода:

V656 Variables ‘nDragW’, ‘nDragH’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rMSettings.GetStartDragWidth()’ expression. Check lines: 471, 472. winproc.cxx 472

Этот фрагмент кода действительно содержал ошибку, которая сейчас исправлена. Но ошибок в коде меньше не становится… Сейчас выявлена похожая ситуация:

V656 Variables ‘defaultZoomX’, ‘defaultZoomY’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pViewData->GetZoomX()’ expression. Check lines: 5673, 5674. gridwin.cxx 5674

Ошибки вносятся в код буквально по аналогии.

Не дай себя обмануть

V765 A compound assignment expression ‘x -= x — . ‘ is suspicious. Consider inspecting it for a possible error. swdtflvr.cxx 3509

Вот такой вот интересный «Hack» был найден с помощью диагностики V765. Если упростить строку кода с комментарием, то можно получить неожиданный результат:

И в чём тогда заключается Hack?

Ещё один пример на эту тему:

V567 The modification of the ‘nCount’ variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior. stgio.cxx 214

Выполнение кода в таких ситуациях может зависеть от компилятора и стандарта языка. Почему бы не переписать этот фрагмент кода проще, понятнее и надёжнее?

Как не надо использовать массивы и векторы

По какой-то причине кто-то понаделал множество однотипных ошибок при работе с массивами и векторами. Давайте разберём эти примеры.

V557 Array overrun is possible. The ‘nPageNum’ index is pointing beyond array bound. pptx-epptooxml.cxx 1168

Последним валидным индексом должно являться значение, равное size() — 1. Но в этом фрагменте кода допустили ситуацию, когда индекс nPageNum может иметь значение mpSlidesFSArray.size(), из-за чего происходит выход за пределы массива и работа с элементом, состоящим из «мусора».

V557 Array overrun is possible. The ‘mnSelectedMenu’ index is pointing beyond array bound. checklistmenu.cxx 826

Интересно, что в этом фрагменте кода написали проверку индекса более понятно, но при этом допустили такую же ошибку.

V557 Array overrun is possible. The ‘nXFIndex’ index is pointing beyond array bound. xestyle.cxx 2613

А эта ошибка вдвойне интереснее! В отладочном макросе написали правильную проверку индекса, а в другом месте снова сделали ошибку, допустив выход за пределы массива.

Теперь рассмотрим ошибку иного рода, не связанную с индексами.

V554 Incorrect use of shared_ptr. The memory allocated with ‘new []’ will be cleaned using ‘delete’. dx_vcltools.cxx 158

Этот фрагмент кода содержит ошибку, приводящую к неопределённому поведению программы. Дело в том, что память выделяется и освобождается разными способами. Для правильного освобождения памяти необходимо было объявить поле класса таким образом:

Как дважды ошибиться в макросах

V568 It’s odd that the argument of sizeof() operator is the ‘bTextFrame? aProps: aShapeProps’ expression. wpscontext.cxx 134

К сожалению для многих разработчиков, аргументы макросов ведут себя не как аргументы функций. Игнорирование этого факта часто приводит к ошибкам. В случаях #1 и #2 используется почти одинаковая конструкция с использованием тернарного оператора. Но в первом случае — макрос, во втором — функция. Однако это только вершина проблемы.

В случае #1 анализатор на самом деле обнаружил следующий код с ошибкой:

Это наш цикл с макросом SAL_N_ELEMENTS. Оператор sizeof не вычисляет выражение в тернарном операторе. В данном случае выполняется арифметика с размером указателей, результатом которой являются значения, далёкие от реального размера указанных массивов. На вычисление неправильных значений дополнительно влияет и разрядность приложения.

Но потом оказалось, что существует 2 макроса SAL_N_ELEMENTS! Т.е. препроцессор раскрыл не тот макрос, как же это могло произойти? Нам поможет определение макроса и комментарии разработчиков:

Другая версия макроса содержит безопасную шаблонную функцию, но что-то пошло не так:

  1. Безопасный макрос не включился в код;
  2. Другим макросом всё равно невозможно пользоваться, т.к. успешное инстанцирование шаблонной функции выполняется только если в тернарный оператор передать массивы одинакового размера. А в этом случае использование такого макроса теряет смысл.

Опечаточки и copy-paste

V1013 Suspicious subexpression f1.Pitch == f2.CharSet in a sequence of similar comparisons. xmldlg_export.cxx 1251

Ошибка является достойным кандидатом для пополнения статьи «Зло живёт в функциях сравнения», если мы когда-нибудь решим её обновить или расширить. Думаю, вероятность найти такую ошибку (пропуск f2.Pitch) самостоятельно крайне мала. А вы как считаете?

V501 There are identical sub-expressions ‘mpTable[ocArrayColSep] != mpTable[eOp]’ to the left and to the right of the ‘&&’ operator. formulacompiler.cxx 632

Результатом бездумного копирования стал такой фрагмент кода. Возможно, условное выражение просто продублировано лишний раз, но всё равно в коде не место таким неоднозначностям.

V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 781, 783. mysqlc_databasemetadata.cxx 781

В результате копирования условных выражений, в коде была допущена ошибка, из-за которой значение 8 для переменной nColumnSize никогда не выставляется.

V523 The ‘then’ statement is equivalent to the ‘else’ statement. svdpdf.hxx 146

Тут перепутали функции min() и max(). Наверняка из-за этой опечатки в интерфейсе что-то странно масштабируется.

Странные циклы

V533 It is likely that a wrong variable is being incremented inside the ‘for’ operator. Consider reviewing ‘i’. javatypemaker.cxx 602

Выражение ++i в цикле выглядит очень подозрительно. Возможно, там должно быть ++j.

V756 The ‘nIndex2’ counter is not used inside a nested loop. Consider inspecting usage of ‘nIndex’ counter. treex.cxx 34

Есть какая-то ошибка во внутреннем цикле for. Т.к. переменная nIndex не изменяется, происходит перезаписывание одних и тех же двух элементов массива на каждой итерации. Скорее всего, везде вместо nIndex должна была использоваться переменная nIndex2.

V1008 Consider inspecting the ‘for’ operator. No more than one iteration of the loop will be performed. diagramhelper.cxx 292

Цикл for намеренно ограничивается до 1 итерации. Непонятно, зачем это сделано именно таким способом.

V612 An unconditional ‘return’ within a loop. pormulti.cxx 891

Пример более простого странного цикла из одной итерации, который лучше переписать на условный оператор.

Ещё несколько таких мест:

  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 144
  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 202
  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 279

Странные условия

V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 281, 285. authfld.cxx 281

Анализатор обнаружил противоречивые сравнения. Что-то с этим фрагментом кода явно не так.

Такой же код замечен и в этом месте:

  • V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 1827, 1829. doctxm.cxx 1827

V590 Consider inspecting this expression. The expression is excessive or contains a misprint. fileurl.cxx 55

Проблема приведённого фрагмента кода заключается в том, что первое условное выражение не влияет на результат всего выражения.

По мотивам подобных ошибок я даже написал теоретическую статью: «Логические выражения в C/C++. Как ошибаются профессионалы».

V590 Consider inspecting this expression. The expression is excessive or contains a misprint. unoobj.cxx 1895

Сразу не понять, в чём проблема данного условия, поэтому из препроцессированного файла был выписан развёрнутый фрагмент кода:

Получилось так, что ни одно число не входит одновременно в 4 диапазона, заданных в условии числами. Разработчики допустили ошибку.

Источник

From The Document Foundation Wiki

  • Главная
  • Разработка
  • Дизайн
  • QA
  • События
  • Документация
  • Сайт
  • Локализация
  • Accessibility
  • Маркетинг
  • Diversity
  • Wiki справка
  • Документация
  • Публикации
  • Сторонняя документация
  • ЧаВо
  • HowTo
  • Macros
  • Документация для разработчиков
  • Главная
  • Общие
  • Writer
  • Calc
  • Impress
  • Draw
  • Math
  • Base

Что означают коды ошибок (Err: NNN ) в электронных таблицах LibreOffice?

Коды ошибок

Код ошибки Текст Описание
#### any Ячейка недостаточно большая для отображения всего содержимого. См. Как просмотреть содержимое ячейки, в которой отображается ###.
501 Invalid character Не верный символ для этого контекста. Например:=1¤2 вместо =1E2.
502 Invalid argument Аргумент функции имеет неправильное (недопустимое) значение. Например: отрицательное значение для функции извлечения корня.
503
#NUM !
Incorrect floating point operation Результат вычисления находится вне определенного диапазона значений.
504 Error in parameter list Параметр функции имеет неверный тип. Например: текст вместо числа или ссылка на диапазон ячеек вместо ссылки на одну ячейку
505 Internal syntax error Не используется
506 Incorrect decimal point Не используется
507 Error : missing pair Не используется
508 Error : missing pair Закрывающая скобка без открывающей скобки или пропавшая закрывающая скобка в середине формулы (отсутствующая скобка в конце формулы добавляется автоматически).
509 Missing operator Отсутствует оператор. Например: в формуле =2(3+4) отсутствует математический оператор (*, /, + или -) между цифрой «2» и открывающей скобкой «(«.
510 Missing variable Недостающая переменная. Два оператора, где второй не является унарным оператором, следуют друг за другом. Например: =1+*2.
511 Missing variable Недостающая переменная. Функция требует большего количества переменных, чем указано. Например: для операторов AND() и OR() не указаны параметры.
512 Formula too long В компиляторе: это относится к внутреннему числу битов (512 максимум), которое не имеет ничего общего с длиной символьной строки в формуле, но зависит от количества операторов, переменных, скобок и т.д. в формуле. В интерпретаторе: формулы, которые генерируют слишком много матриц сразу (150 максимум) и основные функции, которые получают в качестве параметров массив, который слишком велик (OxFFE максимум в 65534 октета).
513 Character string too long В компиляторе: идентификатор в формуле содержит более 255 символов. В интерпретаторе: результат операции над строкой символов содержит более 255 знаков.
514 Internal capacity exceeded Операции сортировки со слишком большим количеством данных (максимум доступно 100 000) или данные, которые превышают стек вычислений
515 Internal syntax error Не используется
516 Internal syntax error Стек расчета должен содержать матрицу, но её не существует.
517 Internal syntax error Неизвестный код операции. Например: документ, содержащий новую функцию, открыт в старой версии программного обеспечения, которая не содержит эту её.
518 Internal syntax error Переменная должна появиться из стека вычислений, но её там нет.
519 #VALUE ! No result Функция не может поставить значение, соответствующее определению, или одна из ячеек, на которую ссылается формула, содержит текст вместо числа
520 Internal syntax error Компилятор сгенерировал код, который не может быть интерпретирован.
521 Internal syntax error Нет результата в стеке вычисления.
522 Circular reference Формула делает прямую или косвенную ссылку на саму себя и в меню Сервис ▸ Параметры ▸ LibreOffice Calc ▸ Вычисления не были активированы итерации.
523 The calculation does not converge Статистические (финансовые) функции стремятся к заданному значению, но не достигают его, или итерация ссылок в цикле не достигает минимального изменения в рамках определенных шагом максимальных
524
#REF !
Incorrect reference В компиляторе: заголовки строк или столбцов не обнаружены. В интерпретаторе: формула ссылается на ячейку, столбец, строка или таблица которой были удалены или не входили в таблицу.
525
#NAME ?
Incorrect name В компиляторе: система не может активировать идентификатор (нет ссылки, имени секции, заголовка строки или столбца, макроса, и так далее). В интерпретаторе: то же самое в течение всего периода выполнения. Например: функция Basic или надстройка недоступны.
526 Internal syntax error Это уже не используется, но может произойти в старых документах, если результатом формулы был диапазон.
527 Internal capacity exceeded В интерпретаторе: Чрезмерная вложенность ссылок (ячейка ссылается на ячейку, которая ссылается на ячейку, которая ссылается на ячейку и т.д.).
532
#DIV/0 !
Division by zero Оператор делений «/», где знаменатель равен «0»
Другие функции могут возвращать эту ошибку. Например:
VAR.P с менее чем 1 аргументом
ECARTYPEP менее чем 1 аргументом
VAR менее чем 2 аргументами
ECARTYPE менее чем 2 аргументами
CENTREE.REDUITE с ECARTYPE=0
LOI.NORMALE с ECARTYPE=0

Yuri-Makarov

Вот такая функция в одной табличке работает, в другой выдает

ошибку 540, почему?

russian

libreoffice

07:24 23.08.2021


1

ответов

Офис один и тот же?

07:38 23.08.2021

Похожие вопросы

Содержание

  1. Коды ошибок в LibreOffice Calc
  2. «Общая ошибка. Общая ошибка ввода / вывода «при открытии документов в Libreoffice
  3. 3 ответа
  4. Как исправить ошибку ввода вывода с диска в Windows
  5. Суть проблемы
  6. Что представляет собой ошибка ввода вывода с устройства?
  7. 1. Кабели
  8. 2. «USB-порт»
  9. 3. Драйвера
  10. 4. Приложение «Chkdsk»
  11. 5. Используйте программу «Speccy» для проверки работоспособности диска
  12. Больше нет ошибок ввода вывода с устройства!

Коды ошибок в LibreOffice Calc

В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния .

Ширины ячейки не хватает для отображения содержимого.

Символ в формуле недействителен.

Недопустимый аргумент функции. Например, отрицательное число в функции SQRT() (в этом случае следует использовать IMSQRT()).

Недопустимая операция с плавающей запятой

Вычисление приводит к переполнению определенного диапазона значений.

Ошибка в списке параметров

Недопустимый параметр функции, например, текст вместо числа или доменная ссылка вместо ссылки на ячейку.

Ошибка: нет пары

Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.

Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.

Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».

Функция требует большего количества переменных, например, AND() и OR().

Слишком длинная формула

Компилятор: общее количество внутренних токенов (то есть операторов, переменных, скобок) в формуле превышает 8192.

Слишком длинная строка

Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ.

Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.

Внутренняя ошибка синтаксиса

В стеке вычислений предполагается матрица, но она недоступна.

Внутренняя ошибка синтаксиса

Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.

Внутренняя ошибка синтаксиса

Нет результата (в ячейке отображается #ЗНАЧЕН!, а не Ошибка:519)

Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа.

Внутренняя ошибка синтаксиса

Компилятор создал неизвестный код компиляции.

Внутренняя ошибка синтаксиса

Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе LibreOffice — Параметры Сервис — Параметры — LibreOffice Calc — Вычислить.

Процедура вычисления не сходится

Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.

недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)

Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку.

недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)

Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).

Внутренняя ошибка синтаксиса

Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.

Интерпретатор: ссылки (например, ссылка ячейки на ячейку) чрезмерно инкапсулированы.

Деление на ноль

Оператор деления/если знаменатель равен 0.
Эта ошибка возвращается некоторыми функциями, например:
VARP с менее чем 1 аргументом
STDEVP с менее чем 1 аргументом
ВАР с менее чем 2 аргументами
STDEV с менее чем 2 аргументами
STANDARDIZE с stdev=0
NORMDIST с stdev=0

Вложенные массивы не поддерживаются

Ошибка: Размер массива или матрицы

Неподдерживаемое содержимое встроенного массива

Внешнее содержимое отключено

Происходит, если встречается функция, требующая (повторной) загрузки внешних источников, а пользователь еще не подтвердил перезагрузку внешних источников.

«Общая ошибка. Общая ошибка ввода / вывода «при открытии документов в Libreoffice

Я запускаю LibreOffice 4.2.5.2 на Ubuntu 14.04. Попытка открыть любой документ (сначала только с большими, но теперь все они) возвращает одно из следующих сообщений:

Общая ошибка. Общие входные / выходные ошибки открытия документов с Libreoffice

Заблокировано для редактирования Неизвестным пользователем

Файл поврежден, должен ли LibreOffice восстановить его?

LibreOffice 4.1.6, который появился с обновлением дистрибутива, имел ту же ошибку. Удаление файлов блокировки (которые я пробовал) не исправляет.

Отправка «поврежденных» файлов на мой адрес электронной почты, я могу без проблем просматривать их содержимое. Я использую LibreOffice только для Linux.

3 ответа

Это исправило ошибку «Общая ошибка. Общая ошибка ввода / вывода» для меня после обновления с Ubuntu 12.04 LTS до 16.04 LTS:

Похоже, что только несколько пакетов LibreOffice были установлены в системе после обновления. Вышеупомянутая команда установила еще несколько пакетов.

Я только что получил это сообщение об ошибке, после некоторого копания я обнаружил, что мой раздел /tmp заполнен. Я освободил место в /tmp и смог открыть мою электронную таблицу.

Примечание. . Это будет применимо только в том случае, если вы используете раздел /tmp — если вы этого не сделаете, это может быть вызвано заполнением вашего корневого раздела, но я предполагаю, что у вас будет другой если это так.

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

Я также получил сообщение об ошибке «Общая ошибка. Общая ошибка ввода / вывода» и нашел решение на другом форуме:

Очистить содержимое этих двух файлов:

Один простой способ выполнить эти команды в терминале:

.. или вы можете перейти к файлам с помощью Nautilus, открыть их в редакторе, удалить контент и сохранить. Ваш выбор:)

После этого LibreOffice открыл мой файл, как будто ничего не произошло.

Я считаю, что если это не сработает, это также возможность просто удалить всю папку

/ .config / libreoffice /, так как я думаю, что она будет воссоздана, но я не тестировал это. Сначала сделайте копию, если вы хотите попробовать.

Как исправить ошибку ввода вывода с диска в Windows

Пять способов исправления ошибки ввода/вывода c устройства . Как исправить ошибку самому, используя встроенные в Windows инструменты или сторонние приложения. Операционная система «Windows» является наиболее популярной и, вероятно, самой распространенной системой для управления компьютерными устройствами в мире. Разработанная корпорацией «Microsoft» , она включает в себя самые последние инновационные наработки в области компьютерных технологий и лучшие решения, взятые от старых версий программы. Универсальность системы и богатый внутренний функционал операционной системы «Windows» делает ее незаменимой на различных устройствах: стационарных персональных компьютерах, ноутбуках, планшетах, коммуникаторах и т.д.

Суть проблемы

Благодаря повсеместному использованию и широкому диапазону возможностей, компьютерные устройства на базе операционной системы «Windows» применяются во всех сферах нашей жизни: управление производственными процессами, обслуживание офисов, решение консультационных и финансово-экономических задач, участие в научном и образовательном процессе, создании средств коммуникации, широчайший выбор игровых платформ и развлечений и т.д.

В домашних условиях для каждого конкретного пользователя персональные компьютеры и другие устройства решают не менее важные задачи: создание и обработка важных документов, хранение личной регистрационной информации, получение и отправка электронной почты, редактирование и форматирование фото и видео файлов, социальное общение, формирование досуга и многое другое.

Одним из основных элементов, отвечающих за обработку и хранение информации пользователя отвечают внутренние хранилища данных: твердотельные накопители «SSD» и жесткие диски «HDD» . Они обладают необычайно высокой скоростью обработки информации и имеют значительный внутренний объем дискового пространства для хранения любого массива данных.

Однако, количество хранимой информации, находящейся у пользователя, с каждым годом, неуклонно растет. И как следствие, емкости внутренних дисковых хранилищ бывает часто недостаточно. Если определенные файлы используются довольно редко (например, личные фото и видео альбомы), а также резервные копии данных или конфиденциальные файлы пользователя – то оптимальным средством для их хранения являются внешние подключаемые диски.

Соединяясь с персональным компьютером при помощи кабеля, они предоставляют доступ ко всей информации пользователя в любой момент. Однако не находятся в постоянном контакте с компьютером и хранятся отдельно. Такой способ хранения данных позволяет быть уверенным в их сохранности, в случае выхода из строя основного жесткого диска компьютера. Ввиду постоянной эксплуатации внутренних дисков вероятность их выхода из строя гораздо выше, чем у внешних накопителей. А также во внутреннем хранилище компьютера освобождается свободное место, используемое пользователем для решения своих актуальных задач.

Однако, ситуация, связанная с использованием внешних накопителей, может помимо всех своих положительных качеств иметь и отрицательные. Как и любые другие устройства, внешние накопители подвержены сбоям или поломкам. Ответьте для себя на несколько простых вопросов. Как часто вы подключаете свои внешние накопители к компьютеру? Раз в месяц или один раз в год? Как часто вы проверяете работоспособность вашего диска и возможность доступа к хранимой на нем информации?

Довольно распространена ситуация, когда, решив подключить свой диск к персональному компьютеру или ноутбуку, пользователь не смог получить к нему доступ. И в результате, операционная система выдает сообщение об ошибке ввода вывода с устройства.

В таком случае, ситуация кажется критической, особенно если на внешнем накопителе хранятся важные личные данные или резервная копия системы. Но не спешите паниковать, ведь неприятную ситуацию еще можно исправить. Мы покажем вам пять способов, как исправить ошибку ввода вывода с устройства, не теряя при этом никаких файлов.

Что представляет собой ошибка ввода вывода с устройства?

Ошибки ввода вывода с устройства довольно распространены. Чаше всего мы связываем их с проблемами аппаратного обеспечения, такими как неправильный кабель, сбой с запоминающим устройством или неверно сконфигурированный драйвер. Исходя из вышесказанного, существует несколько различных способов для исправления ошибки ввода вывода с устройства. Устранение большинства указанных проблем не займет у вас много времени и их достаточно легко осуществить.

Прежде чем начать исправление ошибки ввода вывода с устройства, выполните перезагрузку операционной системы, а затем повторите попытку. Зачастую, такого действия бывает вполне достаточно для устранения возникшей ошибки. Но если ошибка не исчезла, то приступайте к выполнению нижеописанных способов. После каждого действия проверяйте, исправлена ли проблема возникновения ошибки. Если нет, то переходите к следующему способу.

1. Кабели

Вам нужно выполнить полную проверку, выявляя и проверяя уязвимые места, которые могут послужить причиной возникновения ошибки ввода вывода.

Первое действие, которое нужно сделать – просто отрегулировать кабели подключения. Проверьте кабель и механизмы крепления на наличие повреждений, разломов, сколов или загрязнений. Отключите, а затем заново подключите кабель, соединяющий внешний накопитель с компьютером. Выполните такую проверку на обоих его концах, а затем повторите попытку доступа к диску.

Если кабель после повторного подключения не работает, то используйте другой «USB-кабель» и повторите попытку. Если вы не уверены в работоспособности кабеля, соедините его с другим внешним устройством (в работоспособности которого вы полностью уверены) и подключите его к вашей системе. Если он работает, то вы знаете, что кабель не испорчен, и возможно у вас другая причина возникновения ошибки.

2. «USB-порт»

Если первоначальная проверка показала, что причина возникновения ошибки находится не в кабеле, то попробуйте использовать альтернативный порт для подключения накопителя. Большинство современных систем имеют несколько «USB-портов» , так как многие внешние подключаемые устройства используют «USB-соединение» . Кроме того, проверьте, насколько чистые ваши «USB-порты» . Если они пыльные или сильно загрязнены, то необходимо их полностью очистить, стараясь не повредить контакты, а затем повторите попытку.

3. Драйвера

Еще одно базовое, но забытое исправление ошибки ввода вывода с устройства – это обновление драйверов в вашей системе. Операционная система «Windows 10» должна автоматически обновлять все ваши драйвера. Вопрос о постоянных обновлениях был очень болезненным моментом для многих пользователей, когда корпорация «Microsoft» выпустила операционную систему «Windows 10» . Теоретически, система, постоянно обновляющая драйвера, не имеет изъянов. И у вас никогда не должно возникать проблема с драйверами в «Windows 10» .

Но на практике ситуация немного иная. «Windows» не всегда поддерживает версии драйверов в актуальном рабочем состоянии, а иногда постоянная система обновления драйверов просто не работает. В таком случае, вам может помочь программы сторонних производителей, осуществляющие мониторинг системы на наличие устаревших драйверов. Перейдите на сайт любого разработчика, загрузите и установите программу (в некоторых случаях потребуется ваше разрешение для антивирусной системы безопасности компьютера), а затем выполните сканирование системы на наличие устаревших драйверов.

Не удивляйтесь, если по результатам сканирования вы обнаружите большое количество устаревших версий. Во многих случаях соответствующие приложения и службы все еще работают нормально. Просто программа сканирования уведомляет вас, что производитель выпустил более новую версию драйвера и она доступна для скачивания и установки. Найдите драйвер для вашего устройства и обновите его, а затем повторите попытку использования внешнего накопителя.

4. Приложение «Chkdsk»

Хотя ошибки ввода вывода с устройства, в основном, связаны с повреждением оборудования, мы можем попытаться использовать интегрированное системное приложение для устранения проблемы. Приложение «chkdsk» проверяет файловую систему на наличие ошибок и исправляет их.

Для запуска процесса проверки и исправления ошибок необходимо открыть приложение «Командная строка (администратор)» . В операционной системе «Windows 10» представлено много различных способов для запуска командной строки с правами администратора. Мы покажем вам только несколько способов, и вы решите какой из них вам наиболее подходит для дальнейшего применения.

1 способ : Нажмите кнопку «Пуск» в нижнем левом углу рабочего стола и откройте главное пользовательское меню «Windows» . Используя полосу прокрутки, опустите бегунок вниз и выберите раздел «Служебные – Windows» . Раскройте вложенное меню и найдите раздел «Командная строка» . Щелкните по нему правой кнопкой мыши и откройте всплывающее меню. Выберите раздел «Дополнительно» и вызовите вложенное меню, в котором нажмите раздел «Запуск от имени администратора» .

2 способ : Откройте приложение «Поиск» , нажав на соответствующую кнопку, расположенную рядом с кнопкой «Пуск» в нижнем левом углу экрана. Введите в поле поиска запрос «командная» или «cmd» . В разделе «Лучшее соответствие» найдите искомое приложение и нажмите на нем правой кнопкой мыши. В открывшемся всплывающем меню выберите раздел «Запуск от имени администратора» .

3 способ : Откройте проводник файлов «Windows» , дважды щелкнув ярлык «Этот компьютер» , расположенный на рабочем столе, и перейдите по следующему адресу: «C:WindowsSystem32» . Найдите в списке вложенных файлов исполняемый файл «cmd.exe» , щелкните по нему правой кнопкой мыши, и во всплывающем меню выберите раздел «Запуск от имени администратора» .

Затем в приложении «Администратор: Командная строка» введите следующую команду: «chkdsk /f /r /x [буква вашего диска]» , и нажмите клавишу «Ввод» на клавиатуре. Укажите ту букву названия диска, которая присвоена вашему накопителю (в нашем примере указана буква диска «D:» ).

Процесс сканирования может занять некоторое время, особенно если приложение обнаружит сектора, требующие ремонта.

По завершению, приложение представит отчет о выполненных действиях и перечислит любые ремонтные работы, которые были произведены для исправления обнаруженных неполадок накопителя.

5. Используйте программу «Speccy» для проверки работоспособности диска

Если вышеперечисленные исправления не помогли, то вы можете проверить общее состояние жесткого диска, используя бесплатную программу стороннего издателя «Speccy» . Загрузите и установите «Speccy» , выполнив предварительный поиск сайта разработчика в Интернете. В окне программы в левой панели выберите раздел «Хранение данных» . В правой панели окна вы увидите развернутый список доступных устройств хранения, прокрутите страницу вниз и найдите соответствующий диск. Они обычно имеют полную маркировку.

Под техническими характеристиками привода находится раскрывающейся список таблицы атрибутов «S.M.A.R.T.» . На эту таблицу вам и нужно обратить особое внимание.

«S.M.A.R.T.» в переводе с английского означает технология самоконтроля, анализа и отчётности, использующая встроенную систему мониторинга и предоставляющая пользователю полную оценку состояния здоровья жёсткого диска. На представленном выше изображении вы можете увидеть, что программа «Speccy» присваивает каждому показателю мониторинга определенный рейтинг. Вас, в первую очередь, должны заинтересовать следующие показатели:

  • 05: Переназначенные сектора;
  • 0A: Попытки раскрутки;
  • C4: Операции переназначения;
  • C5: Нестабильные сектора;
  • C6: Неисправимые сектора.

Поразительный факт : Исследование «Google» показало, что в течение первых шестидесяти дней после возникновения первой непоправимой ошибки, вероятность выхода из строя диска в тридцать девять раз больше, чем для аналогичного диска без ошибок.

Справедливости ради следует отметить, что исследование «Google» также делает вывод о том, что рейтинги надежности диска «S.M.A.R.T.» имеют ограниченную пользу при прогнозировании надвигающихся сбоев в работе накопителя, но могут представить хорошую общую характеристику состояния диска. Имейте это в виду, если какой-либо из вышеперечисленных атрибутов показывает ошибки (или несколько ошибок для нескольких атрибутов), то это серьезный повод задуматься о переносе всех данных на другой носитель и замене накопителя.

Использование программы «Speccy» не обязательно устранит ошибку ввода вывода с устройства. Но поможет отобразить общую картину работоспособности диска.

Для сравнения, вы можете воспользоваться другими программами сторонних производителей, широко представленных в сети Интернет.

Больше нет ошибок ввода вывода с устройства!

Мы надеемся, что после всех выполненных действий ваша ошибка ввода вывода с устройства была устранена, и вы получили доступ к своему накопителю. Возникновение такой ошибки не всегда означает приближающийся конец для вашего диска. Но это, однако, хороший индикатор того, что с диском, возможно, что-то происходит. Поэтому, не стоит выяснять, является ли эта ошибка началом более серьезных проблем.

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

Появлялись ли у вас ошибки ввода вывода с устройства? Что вы предпринимали для их устранения? Являлись ли ошибки предвестником поломки вашего диска? Вы смогли избежать потери ваших данных на таком диске? Поделитесь с нами вашим опытом по устранению ошибки ввода вывода в комментариях к нашей статье.

Содержание

  1. xlsxwriter и LibreOffice не показывает результат формулы
  2. 1 ответов
  3. Коды ошибок в LibreOffice Calc
  4. Libreoffice Writer пропадают формулы
  5. Лучи гнева.
  6. LibreOffice: страшный сон бухгалтера
  7. Введение
  8. Изменения с последней проверки в 2015 году
  9. Не дай себя обмануть
  10. Как не надо использовать массивы и векторы
  11. Как дважды ошибиться в макросах
  12. Опечаточки и copy-paste
  13. Странные циклы
  14. Странные условия

xlsxwriter и LibreOffice не показывает результат формулы

Я пытаюсь создать файл Excel с простой формулой:

созданный файл отлично работает в Excel, но при открытии в LibreOffice Calc формула не оценивается. Мне нужно повторно ввести числовые значения, и тогда это сработает.

что я делаю не так?

1 ответов

XlsxWriter не вычисляет результат формулы и вместо этого сохраняет значение 0 в качестве результата формулы. Затем он устанавливает глобальный флаг в файле XLSX сказать, что все формулы и функции должны быть пересчитаны при открытии файла. Это метод, рекомендованный в документации Excel, и в целом он отлично работает с приложениями электронных таблиц. Однако приложения, которые не имеют возможности для расчета формулы, такие как Excel Viewer или некоторые мобильные приложения будут отображать только 0 результатов.

Что касается того, почему пересчет не происходит автоматически, из ask.libreoffice.org ответ:

LibreOffice намеренно не пересчитывает старые электронные таблицы, потому что, поскольку формулы обновляются от версии к версии или между различными программами электронных таблиц, результаты могут быть разными. Перейти к инструментам-параметры-LibreOffice Calc, в разделе «пересчет при загрузке файла» измените два раскрывающихся списка: «Excel 2007 и новее» и «электронная таблица ODF (не сохраненная LibreOffice)» на «всегда пересчитывать». Нажмите кнопку ОК, закройте электронную таблицу и LibreOffice. Теперь откройте файл в LibreOffice, и вы увидите, что Формулы пересчитаны.

также перейдите в меню Сервис-содержимое ячейки и убедитесь, что Автокалькуляция выбранный.

Я подтвердил, что настройка «всегда пересчитывать «или» приглашение » работала для мне. Кроме того, вы всегда можете нажать control-shift-F9.

Источник

Коды ошибок в LibreOffice Calc

В следующей таблице описываются коды ошибок для LibreOffice Calc. Если ошибка происходит в ячейке, содержащей курсор, сообщение об ошибке отображается в строке состояния .

Ширины ячейки не хватает для отображения содержимого.

Символ в формуле недействителен.

Недопустимый аргумент функции. Например, отрицательное число в функции SQRT() (в этом случае следует использовать IMSQRT()).

Недопустимая операция с плавающей запятой

Вычисление приводит к переполнению определенного диапазона значений.

Ошибка в списке параметров

Недопустимый параметр функции, например, текст вместо числа или доменная ссылка вместо ссылки на ячейку.

Ошибка: нет пары

Отсутствует скобка: например, есть закрывающие скобки, но нет открывающих скобок.

Отсутствует оператор: например, в выражении «=2(3+4) * » нет оператора между символами «2» и «(«.

Нет переменной, например, в случае, когда два оператора стоят рядом «=1+*2».

Функция требует большего количества переменных, например, AND() и OR().

Слишком длинная формула

Компилятор: общее количество внутренних токенов (то есть операторов, переменных, скобок) в формуле превышает 8192.

Слишком длинная строка

Компилятор: идентификатор в формуле по размеру превышает 64 КБ. Интерпретатор: результат строковой операции по размеру превышает 64 КБ.

Операция сортировки, предпринятая на слишком большом количестве числовых данных (максимально 100000), или переполнение стека вычислений.

Внутренняя ошибка синтаксиса

В стеке вычислений предполагается матрица, но она недоступна.

Внутренняя ошибка синтаксиса

Неизвестный код: например, документ с новой функцией загружен в старую версию, не содержащую этой функции.

Внутренняя ошибка синтаксиса

Нет результата (в ячейке отображается #ЗНАЧЕН!, а не Ошибка:519)

Формула возвращает значение, не соответствующее определению, или ячейка, на которую ссылается формула, содержит текст вместо числа.

Внутренняя ошибка синтаксиса

Компилятор создал неизвестный код компиляции.

Внутренняя ошибка синтаксиса

Формула прямым или косвенным образом ссылается на себя, и не настроен параметр Циклы в разделе LibreOffice — Параметры Сервис — Параметры — LibreOffice Calc — Вычислить.

Процедура вычисления не сходится

Функция потеряла подбираемое значение или циклические ссылки не доходят до минимальных изменений для заданного максимального числа шагов.

недопустимые ссылки (вместо Ошибка:524 в ячейке содержится #ССЫЛ!)

Компилятор: не удалось определить имя описания столбца или строки. Интерпретатор: в формуле отсутствует столбец, строка или лист, содержащий ссылочную ячейку.

недопустимые имена (вместо Ошибка:525 ячейка содержит #ИМЯ?)

Идентификатор не может быть оценен (например, нет допустимой ссылки, нет допустимого доменного имени, нет подписи столбца/строки, нет макроса, неправильный десятичный разделитель, не найдена надстройка).

Внутренняя ошибка синтаксиса

Устарела, уже не используется, но может возникнуть из старых документов, если результатом является формула из домена.

Интерпретатор: ссылки (например, ссылка ячейки на ячейку) чрезмерно инкапсулированы.

Деление на ноль

Оператор деления/если знаменатель равен 0.
Эта ошибка возвращается некоторыми функциями, например:
VARP с менее чем 1 аргументом
STDEVP с менее чем 1 аргументом
ВАР с менее чем 2 аргументами
STDEV с менее чем 2 аргументами
STANDARDIZE с stdev=0
NORMDIST с stdev=0

Вложенные массивы не поддерживаются

Ошибка: Размер массива или матрицы

Неподдерживаемое содержимое встроенного массива

Внешнее содержимое отключено

Происходит, если встречается функция, требующая (повторной) загрузки внешних источников, а пользователь еще не подтвердил перезагрузку внешних источников.

Источник

Libreoffice Writer пропадают формулы

Иногда вставленная формула пропадает, а вместо нее остается просто прямоугольник. В этом году мне что-то с электроникой не везет. Доверять ответственную работу технике нельзя.

Ну и ССЗБ, что латехом не пользуешься!

напишите: номер версии libreoffice и последовательность действий, при которой наблюдается данная ошибка.

4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.

А почему в либре формулы работают чирижопу?

4.3.4.1 Какая последовательность? Просто пропадают неожиданно и все.

4.3.3.2. все работает. последовательность нужна для написания отчета об ошибке авторам, без неё ты просто пришел поныть.

Потому что либре- и прочие говноохфисы — порнография для абсолютных неосиляторов. А им пофиг, как формула выглядит: они все равно не понимают, что эта формула значит!

последовательность нужна для написания отчета об ошибке авторам

Вот тебе последовательность воспроизведения другой ошибки:

  • открой LibreOffice Calc;
  • выбери ячейку, контекстное меню, «формат ячейки»;
  • во вкладке «обрамление» добавь сплошные границы дефолтной линией;
  • во вкладке «выравнивание» поставь угол поворота текста 1 градус;
  • примени изменения, нажав OK;
  • наблюдай графические искажения.

Багу уже года полтора, наверное, если не больше. Описан, не исправлен.

Тут только ныть и остаётся, всё равно остальное не действует.

а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?

а в чем бага? в «выравнивании» есть Reference edge, поставь третий пункт. или я тебя не понял?

Да, третий пункт «чинит». Но это засовывание головы в песок. Ни при каких настройках выравнивания текста ободок не должен так выпирать, это баг.

Вот, кстати, ссылка: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=35510 . Ему уже три с половиной года, оказывается.

а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?

а как оно должно выглядеть для первых двух пунктов? на что надо это исправить?

Когда я поворачиваю текст на один градус, я ожидаю, что он повернётся на один градус, но при этом останется внутри ячейки. И ожидаю, что на границы ячейки поворот никак не будет влиять. Сейчас же текст и границы выбрасывает далеко в сторону.

В багзилле (ссылка была в сообщении выше) есть два вложения-скриншота, «как выглядит» и «как ожидается».

Доверять ответственную работу технике нельзя.

А людям — и подавно. И вообще, 4.3.4.* ещё нестабильна, о чём плач-то? Кстати, как обстоит дело с аппаратным ускорением графики?

Лучи гнева.

Потребовалось набить определённое не самое малое количество формул. И тут эта свистопляска. Самое интересное, что картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто. При сохранении в формат docx вместо формул пусто.

Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.

P.S. грош цена переведённым комментариям исходного кода с немецкого на английский язык, если на ровном месте пропадают данные.

Я не знаю, как там в Дебиане, но в Убунте сборка жутко падучая и какая-то кривая. Правда, формулы у меня не пропадали. Но иногда они рендерятся крайне странно.

Но, конечно, когда возникает такой баг с формулами, лучше всего сделать копию документа и посмотреть, что там происходит в оригинальном XML.

Обновляю версию из debian experimental до 4.4.2-rc2, надеюсь поможет.

Не помогает, увы.

Если с тебя требуют doc, пиши сразу в MSOffice. Если не требуют, пиши в latex.

Спасибо, буду иметь в виду, но вывод очевиден. Пока лучше обходить либру стороной.

Если с тебя требуют doc, пиши сразу в MSOffice.

Нюанс, что требуют docx, но docx с формулами, собственно, в либре набираю исключительно формулы, сохраняю в docx, дальше судьба документа меня не интересует — не мой фронт работы.

При сохранении в формат docx вместо формул пусто.

Это, как раз, возможно. По форматам полной совместимости никто не обещал.

Это, как раз, возможно. По форматам полной совместимости никто не обещал.

Нет, нет. Тут не в конвертере дело. Пропадают формулы, у которых

картинка объекта сохраняется, но если попытаться её отредактировать, то в формуле пусто.

Единственное, что радует. Пропадают, кажется, только новые формулы, старые не исчезают.

Как оказалось, по крайней мере в AOO, при такой последовательности действий по умолчанию (растяжение текста относительно нижней части канта) поворачивается не только текст, но и скашиваются боковые грани обрамления, что наглядно видно, если поставить угол поворота, например, 30 градусов. Поэтому сам текст на самом деле остаётся внутри обрамлённой области, отрисовка которой вываливается за пределы «ячейки». Похоже, что это фича такая. Поэтому при малом угле наклона «ромб» обрамления сильно вытягивает. Остаётся непонятным, с чего это вдруг боковые грани обрамления вообще меняют угол при повороте текста?

Это точно. Ло вообще непредсказуем своим поведением.

Ну надо же, почти два года прошло с того сообщения, я и забыть успел. А в свежем (5.2.3.1) LibreOffice всё ещё воспроизводится.

Ага. Не помню, было ли это тогда, но сейчас при выборе угла есть ещё выбор привязки. Можно выбрать привязку к нижней кромке, верней кромке и к середине. По умолчанию выбрана привязка к нижней кромке, что и приводит к такому выбросу. Если поменять на привязку к центру, поведение становится ожидаемым.

Непонятно, зачем только по умолчанию стоит привязка к кромке.

В libreoffice 5.2.3.3 формулы пропадают. Причем все симптомы те же, что описал человек, создавший тему. Последовательность действий установить не удается.

Источник

LibreOffice: страшный сон бухгалтера

LibreOffice — мощный офисный пакет, который бесплатен для частного, образовательного и коммерческого использования. Его разработчики делают замечательный продукт, который во многих сферах используется в качестве альтернативы Microsoft Office. Команде PVS-Studio всегда интересно взглянуть на код таких известных проектов и попробовать найти в них ошибки. В этот раз сделать это было легко. Проект содержит много ошибок, которые могут привести к серьёзным проблемам. В статье будут рассмотрены некоторые интересные дефекты, найденные в коде.

Введение

LibreOffice — очень крупный C++ проект. Поддерживать проект такого объёма — сложная задача для команды разработчиков. И, к сожалению, складывается впечатление, что качеству кода LibreOffice не удаётся уделять достаточного внимания.

С одной стороны, проект просто огромный, не каждый инструмент статического или динамического анализа осилит анализ 13к файлов исходного кода. Столько файлов участвует в сборке офисного пакета вместе со сторонними библиотеками. В основном репозитории LibreOffice хранится около 8к файлов исходного кода. Такой объём кода создаёт проблемы не только разработчикам:

С другой стороны, у проекта много пользователей и требуется найти и исправить как можно больше ошибок. Каждая ошибка может причинять боль сотням и тысячам пользователей. Поэтому большой размер кодовой базы не должен становиться поводом отказаться от использования тех или иных инструментов, способных обнаружить ошибки. Думаю, читатель уже догадался, что речь идёт о статических анализаторах кода :).

Да, использование статических анализаторов не гарантирует отсутствия ошибок в проекте. Однако такие инструменты, как PVS-Studio, способны найти большое количество ошибок ещё на этапе разработки и тем самым уменьшить объём работ, связанных с отладкой и поддержкой проекта.

Давайте посмотрим, что можно найти интересного в исходных кодах LibreOffice, если взять статический анализатор кода PVS-Studio. Возможности запуска анализатора обширны: Windows, Linux, macOS. Для написания этого обзора использовался отчёт PVS-Studio, созданный при анализе проекта на Windows.

Изменения с последней проверки в 2015 году

В марте 2015 года был выполнен первый анализ LibreOffice («Проверка проекта LibreOffice») с помощью PVS-Studio. С тех пор офисный пакет сильно развился как продукт, но внутри всё также содержит множество ошибок. А некоторые паттерны ошибок вообще не поменялись с тех пор. Вот, например, ошибка из первой статьи:

V656 Variables ‘aVRP’, ‘aVPN’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rSceneCamera.GetVRP()’ expression. Check lines: 177, 178. viewcontactofe3dscene.cxx 178

Эта ошибка исправлена, но вот что нашлось в самой последней версии кода:

V656 Variables ‘aSdvURL’, ‘aStrURL’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pThm->GetSdvURL()’ expression. Check lines: 658, 659. gallery1.cxx 659

Как вы могли заметить, едва различимые составные имена функций до сих пор являются источником ошибок.

Ещё один интересный пример из старого кода:

V656 Variables ‘nDragW’, ‘nDragH’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘rMSettings.GetStartDragWidth()’ expression. Check lines: 471, 472. winproc.cxx 472

Этот фрагмент кода действительно содержал ошибку, которая сейчас исправлена. Но ошибок в коде меньше не становится… Сейчас выявлена похожая ситуация:

V656 Variables ‘defaultZoomX’, ‘defaultZoomY’ are initialized through the call to the same function. It’s probably an error or un-optimized code. Consider inspecting the ‘pViewData->GetZoomX()’ expression. Check lines: 5673, 5674. gridwin.cxx 5674

Ошибки вносятся в код буквально по аналогии.

Не дай себя обмануть

V765 A compound assignment expression ‘x -= x — . ‘ is suspicious. Consider inspecting it for a possible error. swdtflvr.cxx 3509

Вот такой вот интересный «Hack» был найден с помощью диагностики V765. Если упростить строку кода с комментарием, то можно получить неожиданный результат:

И в чём тогда заключается Hack?

Ещё один пример на эту тему:

V567 The modification of the ‘nCount’ variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior. stgio.cxx 214

Выполнение кода в таких ситуациях может зависеть от компилятора и стандарта языка. Почему бы не переписать этот фрагмент кода проще, понятнее и надёжнее?

Как не надо использовать массивы и векторы

По какой-то причине кто-то понаделал множество однотипных ошибок при работе с массивами и векторами. Давайте разберём эти примеры.

V557 Array overrun is possible. The ‘nPageNum’ index is pointing beyond array bound. pptx-epptooxml.cxx 1168

Последним валидным индексом должно являться значение, равное size() — 1. Но в этом фрагменте кода допустили ситуацию, когда индекс nPageNum может иметь значение mpSlidesFSArray.size(), из-за чего происходит выход за пределы массива и работа с элементом, состоящим из «мусора».

V557 Array overrun is possible. The ‘mnSelectedMenu’ index is pointing beyond array bound. checklistmenu.cxx 826

Интересно, что в этом фрагменте кода написали проверку индекса более понятно, но при этом допустили такую же ошибку.

V557 Array overrun is possible. The ‘nXFIndex’ index is pointing beyond array bound. xestyle.cxx 2613

А эта ошибка вдвойне интереснее! В отладочном макросе написали правильную проверку индекса, а в другом месте снова сделали ошибку, допустив выход за пределы массива.

Теперь рассмотрим ошибку иного рода, не связанную с индексами.

V554 Incorrect use of shared_ptr. The memory allocated with ‘new []’ will be cleaned using ‘delete’. dx_vcltools.cxx 158

Этот фрагмент кода содержит ошибку, приводящую к неопределённому поведению программы. Дело в том, что память выделяется и освобождается разными способами. Для правильного освобождения памяти необходимо было объявить поле класса таким образом:

Как дважды ошибиться в макросах

V568 It’s odd that the argument of sizeof() operator is the ‘bTextFrame? aProps: aShapeProps’ expression. wpscontext.cxx 134

К сожалению для многих разработчиков, аргументы макросов ведут себя не как аргументы функций. Игнорирование этого факта часто приводит к ошибкам. В случаях #1 и #2 используется почти одинаковая конструкция с использованием тернарного оператора. Но в первом случае — макрос, во втором — функция. Однако это только вершина проблемы.

В случае #1 анализатор на самом деле обнаружил следующий код с ошибкой:

Это наш цикл с макросом SAL_N_ELEMENTS. Оператор sizeof не вычисляет выражение в тернарном операторе. В данном случае выполняется арифметика с размером указателей, результатом которой являются значения, далёкие от реального размера указанных массивов. На вычисление неправильных значений дополнительно влияет и разрядность приложения.

Но потом оказалось, что существует 2 макроса SAL_N_ELEMENTS! Т.е. препроцессор раскрыл не тот макрос, как же это могло произойти? Нам поможет определение макроса и комментарии разработчиков:

Другая версия макроса содержит безопасную шаблонную функцию, но что-то пошло не так:

  1. Безопасный макрос не включился в код;
  2. Другим макросом всё равно невозможно пользоваться, т.к. успешное инстанцирование шаблонной функции выполняется только если в тернарный оператор передать массивы одинакового размера. А в этом случае использование такого макроса теряет смысл.

Опечаточки и copy-paste

V1013 Suspicious subexpression f1.Pitch == f2.CharSet in a sequence of similar comparisons. xmldlg_export.cxx 1251

Ошибка является достойным кандидатом для пополнения статьи «Зло живёт в функциях сравнения», если мы когда-нибудь решим её обновить или расширить. Думаю, вероятность найти такую ошибку (пропуск f2.Pitch) самостоятельно крайне мала. А вы как считаете?

V501 There are identical sub-expressions ‘mpTable[ocArrayColSep] != mpTable[eOp]’ to the left and to the right of the ‘&&’ operator. formulacompiler.cxx 632

Результатом бездумного копирования стал такой фрагмент кода. Возможно, условное выражение просто продублировано лишний раз, но всё равно в коде не место таким неоднозначностям.

V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 781, 783. mysqlc_databasemetadata.cxx 781

В результате копирования условных выражений, в коде была допущена ошибка, из-за которой значение 8 для переменной nColumnSize никогда не выставляется.

V523 The ‘then’ statement is equivalent to the ‘else’ statement. svdpdf.hxx 146

Тут перепутали функции min() и max(). Наверняка из-за этой опечатки в интерфейсе что-то странно масштабируется.

Странные циклы

V533 It is likely that a wrong variable is being incremented inside the ‘for’ operator. Consider reviewing ‘i’. javatypemaker.cxx 602

Выражение ++i в цикле выглядит очень подозрительно. Возможно, там должно быть ++j.

V756 The ‘nIndex2’ counter is not used inside a nested loop. Consider inspecting usage of ‘nIndex’ counter. treex.cxx 34

Есть какая-то ошибка во внутреннем цикле for. Т.к. переменная nIndex не изменяется, происходит перезаписывание одних и тех же двух элементов массива на каждой итерации. Скорее всего, везде вместо nIndex должна была использоваться переменная nIndex2.

V1008 Consider inspecting the ‘for’ operator. No more than one iteration of the loop will be performed. diagramhelper.cxx 292

Цикл for намеренно ограничивается до 1 итерации. Непонятно, зачем это сделано именно таким способом.

V612 An unconditional ‘return’ within a loop. pormulti.cxx 891

Пример более простого странного цикла из одной итерации, который лучше переписать на условный оператор.

Ещё несколько таких мест:

  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 144
  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 202
  • V612 An unconditional ‘return’ within a loop. txtfrm.cxx 279

Странные условия

V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 281, 285. authfld.cxx 281

Анализатор обнаружил противоречивые сравнения. Что-то с этим фрагментом кода явно не так.

Такой же код замечен и в этом месте:

  • V637 Two opposite conditions were encountered. The second condition is always false. Check lines: 1827, 1829. doctxm.cxx 1827

V590 Consider inspecting this expression. The expression is excessive or contains a misprint. fileurl.cxx 55

Проблема приведённого фрагмента кода заключается в том, что первое условное выражение не влияет на результат всего выражения.

По мотивам подобных ошибок я даже написал теоретическую статью: «Логические выражения в C/C++. Как ошибаются профессионалы».

V590 Consider inspecting this expression. The expression is excessive or contains a misprint. unoobj.cxx 1895

Сразу не понять, в чём проблема данного условия, поэтому из препроцессированного файла был выписан развёрнутый фрагмент кода:

Получилось так, что ни одно число не входит одновременно в 4 диапазона, заданных в условии числами. Разработчики допустили ошибку.

Источник

Понравилась статья? Поделить с друзьями:
  • Libreoffice calc ошибка 523
  • Libreoffice calc ошибка 511
  • Libreoffice calc как убрать подчеркивание ошибок
  • Libraries minecraft ошибка
  • Libopenglrender dll ошибка