Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Как сразу удалить все пользовательские стили ячеек в Excel 2007?

Автор VadimM, 20.11.2009, 09:43

« назад - далее »

VadimM

Уважаемые знатоки!

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

Спасибо!

boa

В меню "Главная" есть "резинка со стрелкой" при раскрытии "стрелки" выберите " "очистить форматы"
выделенные ячейки буду очищены от пользовательского форматирования.

P.S.А еще в темах ранее обсуждалось как очистить вставляемые данные от форматов. Например здесь
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

VadimM

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

SergejS

Может быть решение в том, чтобы вставлять только данные, без форматов?

Андрій Гнєвишев

Может кому пригодится, ответ нашел здесь:
http://www.planetaexcel.ru/?PAGE_NAME=message&FID=8&TID=17396&MID=337014#message337014
"...
Решение:
1. Переименовать расширение xlsx в zip.
2. Открыть архиватором.
3. Удалить из папки xl файл styles.xml
4. Обратно переименовать zip в xlsx.
5. В открывшемся файле не будет никого форматирования стилями ячеек
..."

boa

Цитата: Андрій Гнєвишев от 18.04.2013, 12:17
1. Переименовать расширение xlsx в zip
можно не заморачиваться с переименованием, а просто открыть файл архиватором через меню ПКМ "Открыть с помощью..."
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Димычч

Существует аналогичная проблема. Была обнаружена во время поиска причин медленной работы файлов. Но если просто хирургически удалять или заменять styles.xml, то полностью чистятся все форматы книги, и это не вариант. Задача в том, чтобы просто "выделить и удалить" ненужные стили, оставив только стандартные.
Для примера вкладываю 2 файла с одинаковым содержимым. В одном из них - болезнь в виде лишних стилей. Симптомы: увеличенный в 52 раза размер относительно второго файла и увеличенное в несколько раз время открытия файла.
Задача: удалить эту кучу стилей, сохранив форматирование таблички.

Рекомендую всем, у кого медленно открываются и сохраняются файлы, проверить на лишние стили (Главная-Стили-Стили ячеек).

Файл со стилями более 150Кб, поэтому выложил его на яндекс диск: https://yadi.sk/d/zppp6c-Oa4GNs

Димычч

Есть макрос, по замыслу, как раз удаляющий пользовательские форматы и сохраняющий стандартные. Но, почему-то он удаляет не все...
Sub Del_Styles()
Dim stl As Style
On Error Resume Next
For Each stl In ActiveWorkbook.Styles
If Not stl.BuiltIn Then stl.Delete
Next
End Sub


Димычч

Заметил особенность: те стили, которые не удаляет макрос, нельзя удалить и вручную и приментить к ячейкам. То есть явные "пустышки". Откуда у них такая мощная защита? Как их убить то раз и навсегда?

Димычч

Прошу прощения, что продолжаю долбить в одну и ту же лунку :)

Вопрос не по теме. Удален [МОДЕРАТОР]

vikttur

Тема об удалении. Давайте-ка в новую тему. Эту уже задолбали :)

Димычч

Судя по количеству просмотров данной темы, она довольно актуальна, а ведь ответ на первый вопрос так и не найден. Отвечающие упорно путают понятия "формат" и "стиль" :). Совет "удалить styles.xml" - не решение, так как он рушит форматы в книге. Макрос удаления стилей и его доработка - логичное продолжение данной темы.
Мне нужно создать новую тему "Макрос для удаления всех пользовательских стилей в документе"?

vikttur

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

Кирилл Бойков

Нашел решение:
1. Создаем дубликат файла
2. в одном из excel файлов удаляем styles.xml
3. Открываем оба Excel файла
4. В книге с форматами выделяем отформатированные области
5. Вставляем в файл без форматов в соответствующие области как формат
6. Удаляем лишние стили (их будет не много, можно в ручную)

Дмитрий Гут

#14
А тема то по сей день актуальная. Вот и я столкнулся с медленным открытием файлов из за раздувшегося списка стилей в файле. Вставлял страницы наших Kорейских коллег - вот и довставлялся. 1599 стилей.
Поди-ка вручную поудаляй.
Стилями не пользуюсь, но форматирование страниц специфическое, по этому не хотелось рисковать оформлением удаляя файл "styles.xml"
Вот только я не понял - почему никому не пришло в голову править данный файл?

(Сразу приношу извинения, у меня Excell 2010, но думаю разница с 2007 в данном контексте не особо существенная).


Мое решение:
Открываем файл в текстовом редакторе с возможностью поиска-замены (я пользовался Word-ом, он позволяет искать и вставлять спецсимволы, что удобно).
Файл представляет из себя простыню параметров без переносов строки, что не очень читаемо.
Во второй половине файла видим такие строки примерно:

</cellXfs>
<cellStyles count="1599">

а дальше идет указанное число параметров (1599) такого вида:

<cellStyle xfId="94" name="20% - 강조색3 22"/>
<cellStyle xfId="118" name="20% - 강조색3 9"/>
и т.д. (в текстовом редакторе переносов нет, всё в одну строку)

А заканчивается всё это великолепие строкой
</cellStyles>

Ну в моем случае все просто - мне предстояло вырезать те стили, названия которых были на корейском языке.
Чтобы было читабельно сделал автозамену:
"<cellStyle"   меняем на   "^p<cellStyle"
Эта замена вставляет перед каждым стилем перенос строки.
- Просматриваем , выделяем и удаляем ненужные стили.
- Считаем оставшиеся
- Вносим соответствующее количество в параметр <cellStyles count="     ">
(я оставил один, соответственно поставил единицу).

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

После этого удаляем спецсимволы (опять же автозаменой "^p" заменить на ""), сохраняем.
Впрочем я спецсимволы не удалял - забыл, и всё равно заработало.
Собственно всё. Лишних стилей больше нет, заработало всё нормально, оформление не слетело.

ЗЫ:
Если есть грамотные специалисты - прошу пояснить назначение параметров вида
<xf numFmtId="0" fontId="111" fillId="32" borderId="0" applyNumberFormat="0" applyBorder="0" applyAlignment="0" applyProtection="0"><alignment vertical="center"/></xf>
из первой половины файла стилей.
Странно, что записи этого вида дублируются в огромном количестве друг за другом практически без изменений. Подозреваю, что они также как-то связаны с удаленными стилями, но их вырезать побоялся :)