Генерация красивых Excel-отчётов по шаблону

novichok

Client
Регистрация
17.04.2016
Сообщения
173
Благодарностей
62
Баллы
28
Ну прекратите с такими темами, мне стыдно за себя становится :(
 
  • Спасибо
Реакции: Андрейка2020

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 318
Благодарностей
5 425
Баллы
113
В процессе парсинга создается таблица csv без форматирования, этот файл привязывается к таблице и оттуда уже идет формирование xls файла с форматированием.
Мне кажется где-то критическая ошибка. 40к строк это ни о чем, ни о каком часе и быть речи не может. может стоит иначе как-то организовать?
 

moRL

Client
Регистрация
18.07.2016
Сообщения
101
Благодарностей
70
Баллы
28
Мне кажется где-то критическая ошибка. 40к строк это ни о чем, ни о каком часе и быть речи не может. может стоит иначе как-то организовать?
Хотелось бы организовать попроще, но увы пока так) буду рад подсказкам
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
851
Баллы
93
@LaGir помоги, пожалуйста, разобраться - у меня 43к строк переносятся примерно 1ч. Таблица привязана к файлу стандартным экшеном "Операции с таблицами - привязать к файлу", так как постоянно с новым названием. Как можно ускорить процесс?
В идеале прикрепить шаблон-пример, воспроизводящий проблему, так как пока до конца не понятно в чём дело.
В процессе парсинга создается таблица csv без форматирования, этот файл привязывается к таблице и оттуда уже идет формирование xls файла с форматированием.
Если позволяет текущая логика шаблона - в идеале переделать парсинг данных сразу в Excel-файл.
 

moRL

Client
Регистрация
18.07.2016
Сообщения
101
Благодарностей
70
Баллы
28
В идеале прикрепить шаблон-пример, воспроизводящий проблему, так как пока до конца не понятно в чём дело.
Разобрался с этими тормозами, причина была в том что база для форматирования привязывалась к csv файлу, привязал к xlsx и все заработало шустро.
 
  • Спасибо
Реакции: Mikhail B.

Artur_MSK

Client
Регистрация
15.07.2018
Сообщения
7
Благодарностей
0
Баллы
1
Статью, оценить не могу, так как мозг закипел после двух абзацев)) Но мне очень нужна помощь, кто может реализовать, как раз что бы зенка, видела таблицу со всеми листами. Кто может помочь в этом вопросе отзовитесь.
 

Semyon

Client
Регистрация
19.09.2016
Сообщения
43
Благодарностей
36
Баллы
18
Статью, оценить не могу, так как мозг закипел после двух абзацев)) Но мне очень нужна помощь, кто может реализовать, как раз что бы зенка, видела таблицу со всеми листами. Кто может помочь в этом вопросе отзовитесь.
Т.е. тебе надо передавать информацию с нескольких листов в зенку?

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

Artur_MSK

Client
Регистрация
15.07.2018
Сообщения
7
Благодарностей
0
Баллы
1
Т.е. тебе надо передавать информацию с нескольких листов в зенку?

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

Artur_MSK

Client
Регистрация
15.07.2018
Сообщения
7
Благодарностей
0
Баллы
1
Т.е. тебе надо передавать информацию с нескольких листов в зенку?

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

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 318
Благодарностей
5 425
Баллы
113
Не понимаю как в личку написать.
В личку могут писать только пользователи со статусом клиент. Если у вас есть программа ZennoPoster, то необходимо сделать запрос в поддержку на получение статуса на форуме.
 
Последнее редактирование:
  • Спасибо
Реакции: Artur_MSK

Semyon

Client
Регистрация
19.09.2016
Сообщения
43
Благодарностей
36
Баллы
18
Скомпилировал последнюю версию библиотеки EPPlus в dll, так как нужна была для работы, кому надо берите пользуйтесь.
 

Вложения

garden

Client
Регистрация
23.01.2011
Сообщения
11
Благодарностей
1
Баллы
3
А есть ли API документация? Так и не нашёл.
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
851
Баллы
93

Вложения

Fantomass

Client
Регистрация
13.04.2016
Сообщения
86
Благодарностей
36
Баллы
18
Можно ли с помощью этой библиотеки создать файл .xlsx? Если да, подскажите, пожалуйста, как это сделать.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
  • Спасибо
Реакции: Fantomass

artur23

Client
Регистрация
14.04.2014
Сообщения
205
Благодарностей
15
Баллы
18
Как можно просто взять из таблицы 2 столбца (например артикул и цена) и добавить их в другую таблицу?
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Люди добрые.
Или лыжи не едут или я чего-то не того )

Как взять столбец и данные этого столбца поместить в список?
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Ответ.
Если брать как диапазон
То пустые ячейки смещаются.
Допустим был столбец A в котором была только первая и сотая ячейки с данными, остальные пустые.
При экспорте в список остаётся только 2 значения из 100, а 98 пустых пропускаются.

Чтобы взять все данные, даже с пустыми ячейками, лучше взять и через цикл for или foreach перебрать столбец и добавить себе в список.
 
Последнее редактирование:
Регистрация
26.05.2020
Сообщения
460
Благодарностей
164
Баллы
43
Где взять dll-файл? Я так понимаю, там на гите не скомпилированная библиотека?
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
  • Спасибо
Реакции: Андрейка2020

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
8. Отформатируем полученную табличку в более приглядный вид. Стили таблиц аналогичны тем, которые можно увидеть в Excel, только английскими названиями. «Light1» соответствует «Светлый1», «Medium1» – «Средний1», «Dark1» – «Темный1». Конкретно для первого листа я посчитал подходящим стиль «Светлый19».
C#:
//Определяем диапазон области данных
ExcelRange rangeT1 = ws1.Cells[startRowT1, startColT1, table1.RowCount+startRowT1-1, table1.ColCount+startColT1-1];
//Определяем этот диапазон как таблицу
ExcelTable tableT1 = ws1.Tables.Add(rangeT1, ws1.Name.Replace(" ",String.Empty));
//Задаём стиль таблицы. Стили аналогичны стилям в Excel, только названия на английском
tableT1.TableStyle = TableStyles.Light19;
//Отключаем заголовки и фильтр, в нашем случае они не нужны
tableT1.ShowFilter = false;
tableT1.ShowHeader = false;
9. Переходим ко второму листу. По аналогии вставляем в него данные из второй таблицы.
Кто делал красивости в excel?

Делаю как в этом коде, всё ок, но если нужно добавить данные в файл, то новые данные не форматируются.

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

Есть ли возможность задать стиль на весь документ?
Или как поступать с новыми данными?

upd. Я имею в виду вот это TableStyles.Light19
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
492
Благодарностей
234
Баллы
43
Делаю как в этом коде, всё ок, но если нужно добавить данные в файл, то новые данные не форматируются.
Используете Excel?
У меня были проблемы, когда использовал LibreOffice. Моё сообщение:
Таблицы созданные в LibreOffice не работают, хоть и сохраняются с расширением .xlsx. Даже если банально открыть таблицу Template.xlsx из архива в первом посте и пересохранить, то всё перестает работать.
Используйте Excel или другие таблицы.

Потратил часа три разбираясь, буду рад если сэкономлю кому-то время. :-)
 
Регистрация
26.05.2020
Сообщения
460
Благодарностей
164
Баллы
43
с не
У меня были проблемы, когда использовал LibreOffice
С недавних пор юзаю бесплатный WPS Office - практически полный аналог продуктов MS, а главное - абсолютная совместимость и чистая совесть!
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
492
Благодарностей
234
Баллы
43
с не

С недавних пор юзаю бесплатный WPS Office - практически полный аналог продуктов MS, а главное - абсолютная совместимость и чистая совесть!
Попробуйте excel тогда. Возможно, ваша проблема решится.
 
  • Спасибо
Реакции: Андрейка2020

diaclip

Client
Регистрация
27.08.2020
Сообщения
3
Благодарностей
1
Баллы
3
Доброго времени суток. Подскажите, а можно заставить фильтр нормально работать после преобразования?
3.png
 
  • Спасибо
Реакции: che100

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43

bad robot

Client
Регистрация
07.03.2011
Сообщения
175
Благодарностей
28
Баллы
28
Есть ли способ записать в ячейку с помощью зеннопостера и этой либы (или хоть как) отформатированный текст, переменную с жирным выделением, или подчеркиванием?
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Есть ли способ записать в ячейку с помощью зеннопостера и этой либы (или хоть как) отформатированный текст, переменную с жирным выделением, или подчеркиванием?
Что-то типа вот так
C#:
var cells = sheet.Cells[1, 1, 5, 5];
cells.Style.Font.SetFromFont(new Font("Times New Roman", 12));
cells.Style.Font.Bold = true;
cells.Style.Font.Italic = true;
 
  • Спасибо
Реакции: artur23 и bad robot

ParadoxRU

Client
Регистрация
04.09.2019
Сообщения
19
Благодарностей
6
Баллы
3
@LaGir или кто в теме, подскажите пожалуйста:
при парсинге цен из магазина во внутренние таблицы проекта вид цен такой 144.56
Как при записи в excel через библиотеку EPPlus переделать в формат 144,56?
Или отрезать копейки, оставив 144?
Или нужно преобразовывать на моменте складывания в переменную спаршенных данных?
 

Вложения

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

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
@LaGir или кто в теме, подскажите пожалуйста:
при парсинге цен из магазина во внутренние таблицы проекта вид цен такой 144.56
Как при записи в excel через библиотеку EPPlus переделать в формат 144,56?
Или отрезать копейки, оставив 144?
Или нужно преобразовывать на моменте складывания в переменную спаршенных данных?
Отображение "." или "," зависит от ваших региональных настроек OS.

Смотрите в сторону
C#:
System.Threading.Thread.CurrentThread.CurrentCulture
Или сохраняйте как строку, предварительно заменив stringVariable.Replace(".", ",")
 
  • Спасибо
Реакции: ParadoxRU

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