Слишком длинное имя шрифта excel

Обновлено: 04.07.2024

одна из моих сущностей Machinery получил String свойство notes . JPA 2-Hibernate генерирует схему для меня, в моем случае СУБД-это MySQL.

notes создается как VARCHAR(255) столбец, который является правильным.

пользователи начинают создавать записи и все работает отлично, но тогда некоторые пользователи получают печально Data too long for column "notes" ошибка.

в этом поле недостаточно места для заметок о технике пользователя! Ладно, без проблем. Давайте изменим схема!

Итак, я открываю класс сущности и изменяю свое свойство на:

кстати, мой persistence.xml заявляет:

после перезагрузки приложения я рад, что Hibernate изменяет мой

окончательная книга Hibernate "Java persistence with Hibernate" упоминает об этом обновление значение спящий режим.hbm2ddl.авто (жирным шрифтом-мои)

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

также Hibernate docs предлагают то же самое здесь

инструмент SchemaUpdate обновит существующую схему с помощью "добавочное изменение. SchemaUpdate зависит от метаданных JDBC API и, как таковой, не будет работать со всеми драйверами JDBC.

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

у меня есть пользовательская сущность, как это

и моя настойчивость xml такова

если я изменю значение hibernate.hbm2ddl.авто для создания и изменения свойства text объекта на это

генератор схемы генерирует следующий sql при запуске

теперь изменение свойства в сущности снова

теперь после правильного sql генерируется

пока все хорошо.

теперь, если я изменю значение hibernate.hbm2ddl.авто для обновления и повторения вышеуказанного изменения в сущности в том же порядке, не создается столбец обновления sql, несмотря на то, что я обновил текстовый столбец из varchar (255) в LONGTEXT

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

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

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

У меня была такая же проблема с инструкцией INSTER, которая отлично работала с базой данных, но делала это через Hibernate, не работала и производила усечение данных: данные слишком длинные для столбца. Все работало, когда hbm2ddl был изменен на create-drop.

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

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

как воспроизвести

  • вы используете hibernate envers
  • вы изменяете тип столбца в коде, добавляя аннотацию @Lob.

причина

Hibernate обновляет только исходную таблицу, а не проверенную, это то, что hibernate делает:

симптомы

исключение MysqlDataTruncation вызывается с печально известными "данными слишком длинными для столбца "x".

решение

вручную обновите тип проверяемой таблицы. Пример:

Это было очень сложно, потому что исключение говорит только имя столбца, а не имя таблицы. вот почему drop и re-create schema также работают, вызывают регенерацию проверенных таблиц.

ничего! Я закончил с: - Резервное копирование БД - hbm2ddl => создать-падение - hbm2ddl = > обновить - DB restore

Я думаю, что это решает проблему @Column(columnDefinition="LONGVARCHAR")

У меня тоже был тот же сценарий, и ниже один работает гладко для меня

Я знаю, что его попросили давно, но все же это может помочь кому-то. :)

Что касается меня, я исключаю следующие свойства, и проблема уходит

довольно раздражающая проблема, хотя. Вместо резервного копирования всей БД и изменения hibernate.hbm2ddl.auto , ориентированный диалект ALTER TABLE SQL можно использовать. Например; для MySQL просто обновите тип столбца с

PS: Не забудьте обновить таблицы аудита!

весной / JPA / спящий режим / Postgres,

работает как шарм для меня!

Важное Замечание: тип столбца в базе данных не обновляется автоматически для меня, поэтому мне нужно либо разрешить Hibernate воссоздать таблицу, либо вручную изменить тип с varchar(255) to text , иначе ничего появляется произойдет.

когда я пытаюсь установить длинное имя листа с помощью ruby и win32ole со следующим кодом:

Я получаю следующее:

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

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

формат файла позволит до 255-символьных имен листов, но если пользовательский интерфейс Excel не хочет, чтобы вы превышали 31 символ, не пытайтесь выйти за пределы 31. Приложение полно странных недокументированных ограничений и причуд, и подача его файлов, которые находятся в пределах спецификации, но не в пределах диапазона вещей, которые тестировщики бы протестировали, обычно вызывает действительно странное поведение. (Личный любимый пример: использование байт-кода Excel 4.0 для функции if() в файле со Строковой таблицей Excel 97 отключено кнопка панели инструментов для полужирного шрифта в Excel 97.)

переименование листа вручную в Excel, вы попали в предел 31 символов, поэтому я бы предложил, что это жесткий предел.

мое решение состояло в том, чтобы использовать короткий псевдоним (менее 31 символа), а затем написать все имя в ячейке 0.

Я использую следующий код vba, где filename-это строка, содержащая имя файла, которое я хочу, а функция RemoveSpecialCharactersAndTruncate определена ниже:

basename error

Я только что протестировал пару путей с помощью Excel 2013 на Windows 7. Я обнаружил, что общий предел пути составляет 213, а длина базового имени-186. По крайней мере, диалоговое окно ошибки для превышения длины базового имени ясно:

enter image description here

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

enter image description here

ошибка пути обманчива, хотя. Совершенно неконструктивным:

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


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

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

Почему длина имени файла является проблемой в Windows?

Существует большая история длины файлов, что является проблемой для операционных систем, таких как Windows. Было время, когда вы не могли иметь имена файлов длиннее 8 символов плюс 3-символьное расширение файла. Лучшее, что вы могли сделать, это что-то вроде myresume.doc. Это было ограничение в отношении дизайна файловой системы.

Все стало лучше, когда вышли новые версии Windows. Мы перешли от старой ограниченной файловой системы к так называемой файловой системе новой технологии (NTFS). NTFS привела нас к тому, что имя файла может быть длиной 255 символов, а длина пути к файлу потенциально может достигать 32 767 символов. Так как же мы можем иметь слишком длинные имена файлов?


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

Настройка Windows 10 на обработку длинных путей к файлам

Если вы знаете, что будете часто использовать длинные пути к файлам и длинные имена файлов, вам будет проще заставить Windows работать. Нет смысла использовать PowerShell для выполнения работы каждый день.

Параметры для Windows 10 Home

Чтобы Windows 10 Home принимала длинные пути к файлам, нам нужно открыть редактор реестра . Если вы раньше не работали в редакторе реестра, будьте осторожны. Случайное удаление или изменение здесь может помешать работе Windows полностью.

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

Открыв редактор реестра и сделав резервную копию, перейдите в папку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem и найдите ключ LongPathsEnabled.


Дважды щелкните LongPathsEnabled. Убедитесь, что в поле Значение данные: номер 1 указан. Нажмите OK, чтобы подтвердить изменения.


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

Параметры для Windows 10 Pro или Enterprise

Чтобы позволить Windows 10 Pro или Enterprise использовать длинные пути к файлам, мы будем использовать редактор локальной групповой политики. Это инструмент, который позволяет нам устанавливать политики в отношении работы Windows на компьютере и на уровне пользователей.

Откройте редактор групповой политики, перейдя в меню «Пуск» и набрав gpedit . Лучший результат должен быть Изменить групповую политику. Дважды щелкните по этому.


После открытия редактора групповой политики перейдите к Конфигурация компьютера → Административные шаблоны → Система → Файловая система. Там вы увидите политику включения длинных путей Win32.


Дважды щелкните по нему, чтобы изменить параметр политики. Измените его с «Отключено» на «Включено», затем нажмите кнопку «ОК», чтобы зафиксировать изменение.


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

Легкое Исправление

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

Понятно, кто в этом случае виновник. Найдите файл в проводнике Windows или в проводнике, как он называется в Windows 10, нажмите один раз на него, нажмите F2, чтобы переименовать его, и измените это глупое имя файла на более разумное. Задача решена.

Менее простые исправления

Не всегда легко решить эту проблему. Иногда вы не можете изменить имена файлов или каталогов по любой причине.

Следующие решения помогут вам. Их несложно сделать.

Обратите внимание, что слова каталог и папка являются взаимозаменяемыми. Мы будем использовать «каталог» в будущем. Следующие командлеты PowerShell также можно использовать для файлов.

Возможно, путь к файлу выглядит примерно так:

Этот путь к файлу составляет 280 символов. Поэтому мы не можем скопировать каталог оттуда куда-либо еще с помощью обычного метода копирования-вставки. Мы получаем ошибку Destination Path Too Long.


Давайте предположим, что по какой-то причине мы не можем переименовать каталоги, в которые вложен файл. Что мы делаем?

Каталог с именем This находится в каталоге Documents. Чтобы перейти в каталог Documents, мы используем команду cd Documents .


Вы увидите быстрое изменение текущего каталога на C:\Users\guymc\Documents. Это хорошо. Мы работаем ближе к каталогам, которые облегчат жизнь.

Копирование каталога с использованием Copy-Item

Мы хотим скопировать каталог This и его содержимое в ThatNewFolder. Давайте используем команду PowerShell Copy-Item с параметрами -Destination и -Recurse.

-Destination сообщает PowerShell, где мы хотим, чтобы копия находилась. -Recurse говорит PowerShell скопировать все элементы внутри к месту назначения. Копирование оставляет оригиналы там, где они есть, и делает все новые в месте назначения.


Переместить каталог с помощью Move-Item

Допустим, мы хотим переместить каталог This, а также все каталоги и файлы в нем, в ThatNewFolder. Перемещение не оставляет оригинал на месте.

Мы можем использовать команду PowerShell Move-Item с параметрами -Path и -Destination. -Path определяет элемент, который мы хотим переместить, и -Destination сообщает PowerShell, где мы хотим его получить.

Команда поместит это в ThatNewFolder. Он также будет перемещать все, что находится внутри этого каталога. Move-Item может использоваться для перемещения файлов или каталогов, и он работает независимо от пути к файлу или длины имени файла.


Чтобы убедиться, что это работает, используйте команду cd ThatNewFolder , чтобы войти в ThatNewFolder. Затем используйте команду dir для вывода списка каталогов в ThatNewFolder. Вы увидите, что этот каталог находится там.


Удалить каталог с помощью Remove-Item

Если мы хотим удалить этот каталог и все в нем, мы используем команду Remove-Item.

Командлет Remove-Item обладает некоторой встроенной безопасностью, которая затрудняет удаление каталога с содержимым внутри него. В нашем примере мы знаем, что хотим удалить все, поэтому мы будем использовать параметры -Recurse, чтобы заставить его удалять все внутри, и -Force, чтобы он делал это, не спрашивая нас, уверены ли мы в каждом элементе внутри.

Имейте в виду! Восстановить что-либо удаленное таким образом было бы чрезвычайно сложно.


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

Вот и все


Microsoft Office несколько лет назад изменил размер шрифта и стиль на Calibri. Хотя это было хорошее решение, всегда есть пользователи, которым не нравятся настройки по умолчанию, и которые нуждаются в изменении. Им нравится выбирать шрифт, который лучше всего подходит для них. Если вы один из тех пользователей, которые хотят изменить шрифт по умолчанию и выбрать тот, который лучше соответствует вашим потребностям, то этот пост вас заинтересует.

В этом уроке мы покажем вам, как изменить шрифт по умолчанию.

  1. Microsoft Office Word
  2. Microsoft Office Excel
  3. Microsoft Office PowerPoint

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

1] Изменить шрифт по умолчанию в Word


Запустите приложение Microsoft Word, перейдите на вкладку «Домой», а затем нажмите стрелку «Диалоговое окно» в группе «Шрифт».

Здесь выберите шрифт, который вы хотите использовать, затем в разделе «Размер» выберите размер, который вы хотите использовать для основного текста.


Позже нажмите кнопку «Установить по умолчанию».


Теперь в появившемся диалоговом окне нажмите «Все документы на основе шаблона Normal» и дважды нажмите кнопку «ОК».

2] Изменить шрифт по умолчанию в Excel


Если вы хотите изменить шрифт по умолчанию для ячеек Excel, откройте лист Excel, переключитесь на вкладку «Домой» и выберите стрелку диалогового окна в группе «Шрифт».

После этого перейдите на вкладку «Шрифт», выберите «Шрифт», «Стиль шрифта», «Размер шрифта» и нажмите кнопку «ОК».

3] Изменить шрифт по умолчанию в PowerPoint


Процедура изменения шрифта по умолчанию в Microsoft Office PowerPoint остается такой же, как в Microsoft Word.

Запустите приложение PowerPoint, выберите вкладку «Домой» и нажмите стрелку «Диалоговое окно» в группе «Шрифт».

Далее выберите нужный шрифт, его размер, стиль и нажмите кнопку «ОК».

Читайте также: