Йоксель » Главный форум

Не правильно отображаются цвета в Екселе

(22 posts)
  1. Serginio
    Участник

    Вот такие цвета в Йокселе не так отображаются в Экселе 2007. Или где можно найти соответствие цветов. Заранее блогадарен. И большое спасибо за продукт. В восьмерке проблемы с сохранением в Эксель при работе на сервере табличных документов. У меня и Эксель отказывается записывать в Windows Server 2008. Ваша разработка очень помогла бы но вот засада с цветами
    Процедура Кнопка1Нажатие(Элемент)
    Док = ЭтаФорма.ЭлементыФормы.ЭлементЙокселя.GetControl().Документ;
    Док.Область ().ШиринаСтолбца (100);
    Док.Область ().ВысотаСтроки (100);

    // Вставить содержимое обработчика.

    //Цвет=WebЦвета.ЦветМорскойВолныТемный;
    сч=1;
    Область=Док.Область(сч,1,сч,1);
    Область.ЦветФонаRGB (143, 188, 143);

    //Цвет=WebЦвета.НейтральноЗеленый;
    сч=2;
    Область=Док.Область(сч,1,сч,1);
    Область.ЦветФонаRGB (127, 255, 0);
    // WebЦвета.СветлоЗолотистый;
    сч=3;
    Область=Док.Область(сч,1,сч,1);
    Область.ЦветФонаRGB (255, 215, 215);

    // Цвет = WebЦвета.Голубой;
    Сч=4;
    Область=Док.Область(сч,1,сч,1);
    Область.ЦветФонаRGB (166,202, 240);
    Док.ОбновитьВсеОтображения ();

    ИмяФайла = КаталогВременныхФайлов () + "TempDoc.xls";
    Док.Записать(ИмяФайла,1);
    ЗапуститьПриложение (ИмяФайла);

    КонецПроцедуры

    Отправлено 15 года(лет) назад #
  2. Это потому что Йоксель записывает XLS-файлы со стандартной палитрой для Excel, а 1С записывает XLS-файлы с переопределенной под себя палитрой. Для сравнения выкладываю две палитры: слева Excel, справа 1С. В стандартной Excel-палитре некоторые цвета 1С отсутствуют, поэтому при выгрузке они заменяются наиболее близкими.

    В использовании стандартных цветов есть плюс - при копировании данных из документа в документ не происходит искажений цветов - как иногда случается с документами 1С. С другой стороны при сохранении некоторые цвета 1С искажаются.

    В планах стоит сделать возможность выбора используемой палитры (стандартная, 1С или адаптивная под документ), но когда будет - сказать сложно.

    Attachments

    1. palettes.png (2.5 KB, 1,165 downloads) 15 года(лет) old
    Отправлено 15 года(лет) назад #
  3. Serginio
    Участник

    Я вобщем готов переделать цвета, но даже при преобразовании из 8 ного табличногПоля в MXL7 цвета меняются. Я загружаю MXL в Йоксель и меняю цвета на RGB которые описаны для вэб мастеров и в 1С устанавливаются в диалоге при выборе цвета. Но вот В Йкселе отображается правильно, а при сохранении в Екселе неправильно. Спасибо за палитру, хоть из нее можно выбрать. Спасибо. Просто засада с сохранением Экселя на сервере, да и долго, а у йокселя подбор цветов

    Отправлено 15 года(лет) назад #
  4. Serginio
    Участник

    Просто я выставляю в Йокселе
    Область.ЦветФонаRGB (127, 255, 0); а в Эселе он отображается
    123,204,0

    Отправлено 15 года(лет) назад #
  5. Serginio
    Участник

    А можно еще раз узнать при выставлении в Йокселе
    Область.ЦветФонаRGB (127, 255, 0); а в Эселе он отображается
    123,204,0
    Это Эксель у меня неправильный или проблеа в другом? Можт можно сохранять в Эксель один к одному цвета из Йокселя? RGB о и в африке RGB

    Отправлено 15 года(лет) назад #
  6. > RGB о и в африке RGB
    Нет. Я уже в первом ответе писал, что у Excel - палитра из 56 цветов. И цвета могут быть только из этого набора. 127, 255, 0 в стандартной палитре нет, поэтому подбирается ближайший.

    По поводу сохранения "один в один" я тоже уже писал: в будущих планах есть реализация возможности:
    1) либо выбора стандартной для 1С палитры,
    2) либо расчета палитры документа, когда палитра будет составляться из цветов, задействованных в документе.

    Пока используется только стандартная для Excel палитра. По поводу плюсов и минусов такого решения я тоже уже писал.

    Отправлено 15 года(лет) назад #
  7. Да и, кстати, Excel использует профили ICM оборудования, поэтому сравнивать затребованные цвета и отображаемые в Excel при помощи скриншотов и "пипетки" нельзя. Они будут несколько "искажены" - адаптированы под монитор. В моем случае, помню, цвета были сдвинуты немного в "синюю сторону".

    Отправлено 15 года(лет) назад #
  8. Хм, или это было из-за High Color?... Сейчас уже точно не помню... В общем, при использовании "пипетки" с Excel возможны всякие неожиданности.

    Отправлено 15 года(лет) назад #
  9. Serginio
    Участник

    Спасибо, то есть выбор из 56 цветов? Тогда почему 1С 8 ка сохраняет один к одному в Макет.Записать (ИмяФайла, ТипФайлаТабличногоДокумента.XLS); Значит все же RGB используется. Поймите мне очень важно, что бы цвета заработали, как впрочем и многим. И приношу извинния за назойливость. Продукт мне очень понравился.

    Отправлено 15 года(лет) назад #
  10. Нет "RGB не используется". Просто этот набор из 56 цветов можно менять. 1С использует свой набор из 56 цветов. Поэтому цвета 1С отображаются без искажений. Йоксель использует стандартный набор из 56 цветов. А в стандартном наборе есть не все цвета 1С.

    Отправлено 15 года(лет) назад #
  11. Serginio
    Участник

    Я кстати беру RGB не из пипетки а из Выбора диалога Цветов 8 ки при выборе Вэб цветов, они отображаются в RGB так же и ввиде шестнадцатиричного представления

    Отправлено 15 года(лет) назад #
  12. Serginio
    Участник

    В данном случае разговор о 8 ке. А она сохраняет в Эксель один к одному и формат там тоже старый XLS97. Может можно решить эту прлему? Може есть у Экселя RGB? Почему, у восмерки получается сохранить?

    Отправлено 15 года(лет) назад #
  13. Serginio
    Участник

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

    Отправлено 15 года(лет) назад #
  14. Еще раз повторяю, 1С (включая восьмерку), записывает переопределенный набор из 56 цветов. А Йоксель использует стандартный набор.

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

    Отправлено 15 года(лет) назад #
  15. > 1Свосьмерка сохраняет правильно Вэб цвета, которые отсутствуют в палитре

    Это возможно, если она модифицирует палитру. Но больше 56 цветов ты все равно не сможешь задействовать.

    Отправлено 15 года(лет) назад #
  16. > Може есть у Экселя RGB?
    Нету у Экселя RGB, нету. Формат для ячейки включает двухбайтовый индекс шрифта. Шрифт включает двухбайтовый индекс в палитре. Так что RGB туда никак не влезет. Увы.

    Отправлено 15 года(лет) назад #
  17. Serginio
    Участник

    Мжет во так палитра назначается
    ЦветаЭкселя = КнигаExcel.Colors.Выгрузить(); // Получим все индексы цвета экселя
    ЦветаЭкселя[1] = ВернутьСтрокуЦвета(255,236,139); //СветлоЗолотистый
    ЦветаЭкселя[2] = ВернутьСтрокуЦвета(240,128,128); //СветлоКоралловый
    ЦветаЭкселя[3] = ВернутьСтрокуЦвета(255,255,255); //Белый
    ЦветаЭкселя[4] = ВернутьСтрокуЦвета(166,202,240); //Голубой
    ЦветаЭкселя[5] = ВернутьСтрокуЦвета(255,236,139); //НейтральноЗеленый
    ЦветаЭкселя[6] = ВернутьСтрокуЦвета(143,188,139); //ЦветМорскойВолныТемный

    МассивДляExcel = Новый COMSafeArray(ЦветаЭкселя,"VT_I4"); // Конвертируем в массив используемый в COM, в ковычках указан тип значений
    КнигаExcel.Colors = МассивДляExcel;

    Может и для Йокселя аналогично палитру назначать?

    Отправлено 15 года(лет) назад #
  18. Serginio
    Участник

    Функция ВернутьСтрокуЦвета(R,G,B) Экспорт
    Возврат(B*65536+G*256+R);
    КонецФункции

    Отправлено 15 года(лет) назад #
  19. "КнигаExcel" - это что за объект?

    Для Йокселя конечно можно предусмотреть редактирование палитры, но только зачем? Просто достаточно добавить автоопределение палитры - когда Йоксель проходит по всему документу и составляет список использованных цветов. Этот список потом и записывается как палитра. И никакого геморроя с редактированием палитры явным образом.

    Отправлено 15 года(лет) назад #
  20. Serginio
    Участник

    Excel = Новый COMОбъект("Excel.Application");
    //Excel = ПараметрыСеанса.ExcelApplication.Получить();
    Excel.DisplayAlerts = Ложь;
    КнигаExcel = Excel.WorkBooks.Add();
    ЛистExcel = КнигаExcel.WorkSheets(1);

    ЦветаЭкселя = КнигаExcel.Colors.Выгрузить(); // Получим все индексы цвета экселя

    С тем, что можно получать полностью согласен, иочень этого хочется. Просто не переставлиать же винду из-за того что Ёксель (всмыле Эксель) не записывает при выполнении на ервере. Толко на Вас большая надежда...

    Отправлено 15 года(лет) назад #
  21. В планах, как я говорил, такое есть. Но когда конкретно будет сделано - здесь пока ничего сказать не могу.

    Отправлено 15 года(лет) назад #
  22. Serginio
    Участник

    Спасибо. Извините, что не разу понял. Эх побыстрее бы эти планы ... Хотя бы вручную палитру назначить. Еще раз спасибо

    Отправлено 15 года(лет) назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.