Excel , EPPlus , работа с изображениями.

  • Автор темы Автор темы che100
  • Дата начала Дата начала

che100

Client
Регистрация
18.04.2017
Сообщения
808
Реакции
507
Баллы
93
EPPlus -библиотека для работы с MS Excel.

В составе прикрепленного архива 2 открытых шаблона и файловая обвязка для тестов. Мин версия ZP 7.4.0.0

Шаблон Excel_C#.zp - C# cниппеты для работы с библиотекой Excel-я - EPPlus.
Подключение, чтение, запись, стили, дизайн, форматирование. Работа с : изображениями, ссылками, датами и комментариями.Подгонка, перенос текста, шрифты, RichText и прочее.

Шаблон Pica.zp - пример работы с изображениями, добавляет картинки в Excel.
Пример работы на видео:

Подключаем EPPlus.
Кладем библиотеку сюда: C:\Program Files\ZennoLab\RU\версия постера\номер билда\Progs\ExternalAssemblies\EPPlus.dll

Доб. ccылки из GAK , указываем EPPlus.
97239


Прописываем юзинги:
C#:
Развернуть Свернуть Копировать
using OfficeOpenXml;
using OfficeOpenXml.Style;
using OfficeOpenXml.Table;
using OfficeOpenXml.ConditionalFormatting;
using System.Drawing;
using OfficeOpenXml.Drawing;
using OfficeOpenXml.Drawing.Vml;
97240



97241


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


Как мониторить файл Excel-я?
Довольно часто при работе с таблицами Excel-я требуется чекать выполнение шаблона в режиме онлайн,особенно когда на табле строится логика шаблона или просто тестируешь новый шаб.
В notepad++ для этих целей есть - Мониторинг (tile -f), лежит во вкладке Вид. Майки зажопили такой финт для Excel-я, зато не поленились и добавили Кирилицу в формулы, ну как добавили, нагло приказали: - Юзаешь православный Excel, делай формулы на кирилице,кодить на кирилице - какая прелесть, привет прогерам желтой программы. Я как и многие потому и сижу на eng версии.

Для себя открыл 2 костыля:
1. Ручками - добавить кнопку Toggle : жмем на треугольник или через File Options - Quick Access Toolbar - Popular Commands - More Commands - Toggle Read Only

2. Макросами через гор.клавиши:
Добавляем 2 этих макроса в Личную книгу макросов:
C#:
Развернуть Свернуть Копировать
Sub Book_Read_Y()
'Только чтение
On Error Resume Next 'убираем долбанное окно ошибки
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
End Sub

Sub Book_Write_U()
'Чтение и запись
On Error Resume Next 'убираем долбанное окно ошибки
ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite
End Sub

Чтение я поставил на Ctrl+Y , запись на Ctrl+U, далее забиндил эти сочетания на Tab(only Excel) в Key Manager-e. Костыльно,но жить можно.
97242

97243

97244


Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать - это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу Макросов. Включаем вкладку Developer\Разработчик - Record macro\Запись макроса - сохранияем в ЛКМ.

97246


Можно еще создать ярлык ,
прописать пути до Офиса и книги , например:
C#:
Развернуть Свернуть Копировать
например: "C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE" /r "C:\WRK\EPPlus\Конкурс шаблонов № 9\Pica.xlsx"
Книга будет открываться только для чтения.
97247
 

Вложения

Последнее редактирование:
97263


Лайк за старания )
 
В составе прикрепленного архива 2 открытых шаблона и файловая обвязка для тестов. Мин версия ZP 7.4.0.0
Похоже архив забыли приложить с шаблонами. Не вижу его
 
  • Спасибо
Реакции: che100
Шаблон Pica.zp - пример работы с изображениями.
А что делает? Описание добавь какое нибудь. Что именно с изображениями делается, заливаются картинки в эксель?
 
  • Спасибо
Реакции: che100
Полезная инфа. :ay: Кто то как раз искал подробности по работе с этой либой. :az:
 
  • Спасибо
Реакции: che100
А как переместить картинки из одной таблицы в другую средствами epplus? Можете показать или обьснить?
 
  • Спасибо
Реакции: djaga
А как переместить картинки из одной таблицы в другую средствами epplus? Можете показать или обьснить?
Сходу не скажу, так не делал, попробую , по результатам отпишусь.
 
Спасибо , как раз недавно , был нужен подобный функционал
 
  • Спасибо
Реакции: che100
Майки зажопили такой финт для Excel-я, зато не поленились и добавили Кирилицу в формулы, ну как добавили, нагло приказали: - Юзаешь православный Excel, делай формулы на кирилице,кодить на кирилице - какая прелесть, привет прогерам желтой программы. Я как и многие потому и сижу на eng версии.
есть,такое... поржал :D
За статью спасибо, в закладки8-)
 
А как переместить картинки из одной таблицы в другую средствами epplus? Можете показать или обьснить?
Получил в переменную внутри C# кубика, но скопировать или сбросить на диск не получилось. (
Пока времени нет разбираться , но задача интересная.

EPPlus, получить изображение.
C#:
Развернуть Свернуть Копировать
//Формируем путь до Excel книги (Директория шаблона\Pica.xlsx)
string xlsx_path = project.Directory + @"\A.xlsx";
//Подкл.1-й лист книги
var bk_1 = new ExcelPackage(new FileInfo(xlsx_path));
ExcelWorksheet st_1 = bk_1.Workbook.Worksheets[1];
var pic = st_1.Drawings["3D Smile 1.jpg"] as ExcelPicture;
return pic.Image;

Костыль.
Все xlsx файлы являются zip-файлами. Можно скопировать/переименовать расширение .xlsx в .zip , внутри которого
в xl/media лежат картинки. Жаль что они теряют свои имена. Но их можно спарсить из xml .
 
Получил в переменную внутри C# кубика, но скопировать или сбросить на диск не получилось. (
Пока времени нет разбираться , но задача интересная.

EPPlus, получить изображение.
C#:
Развернуть Свернуть Копировать
//Формируем путь до Excel книги (Директория шаблона\Pica.xlsx)
string xlsx_path = project.Directory + @"\A.xlsx";
//Подкл.1-й лист книги
var bk_1 = new ExcelPackage(new FileInfo(xlsx_path));
ExcelWorksheet st_1 = bk_1.Workbook.Worksheets[1];
var pic = st_1.Drawings["3D Smile 1.jpg"] as ExcelPicture;
return pic.Image;

Костыль.
Все xlsx файлы являются zip-файлами. Можно скопировать/переименовать расширение .xlsx в .zip , внутри которого
в xl/media лежат картинки. Жаль что они теряют свои имена. Но их можно спарсить из xml .
Спасибо, все нашёл. Оказалось не сложно.)
Вопрос закрыт.
 
@che100, Кстати, какую версию epplus использовать, чтобы ZP не ругалась? Последнии вроде быстрее работают, но зависимости конфликтуют с ZP.
 
  • Спасибо
Реакции: djaga и che100
А скорость работы по сравнению со стандартным зенновским решением для работы с таблицами не замеряли случаем?
Не замерял. Зенновскими картинки не добавишь и с листами вроде не умеет работать.


@che100, Кстати, какую версию epplus использовать, чтобы ZP не ругалась? Последнии вроде быстрее работают, но зависимости конфликтуют с ZP.
4.5.3.2 Добавил в архив, перекачай.
 
Давно был запрос как вставлять картинки в таблицы эксель
@che100 пробую твой шаб на своей таблице(её скачал из рабочей почты). Выдаёт ошибку
Выполнение действия CSharp OwnCode: Вставляем пикчу.. Worksheet position out of range.

В чём может быть проблема?
 
Выполнение действия CSharp OwnCode: Вставляем пикчу.. Данный ключ отсутствует в словаре.

Точнее вот ошибка
 
При этом если использую твою таблицу, всё работает корректно.

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

Возможно в моей таблице стоит какая-то защита. Не подскажешь, где искать ответ? или как снять возможные защиты таблицы?
Может быть названия листов отличаются .
 
  • Спасибо
Реакции: samorestter и ermoladan
Не замерял. Зенновскими картинки не добавишь и с листами вроде не умеет работать.



4.5.3.2 Добавил в архив, перекачай.
Последняя доступная версия в Nuget 6.1.2.0
У вас не получилось с ней работать? Дальше версии 4.5.3.2 не получается подключить?
 
Последняя доступная версия в Nuget 6.1.2.0
У вас не получилось с ней работать? Дальше версии 4.5.3.2 не получается подключить?
Ссылка на Nuget пакет (не получилось отредактировать предыдущий пост):
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)