Как стать автором
Обновить

Бесплатные способы извлечения таблиц из PDF в C#

Время на прочтение 3 мин
Количество просмотров 3.9K

PDF (Portable Document Format) - это формат файлов, который широко используется для обмена и хранения электронных документов. Его популярность привела к тому, что многие важные данные хранятся в PDF-файлах в виде таблиц. Однако когда нам нужно использовать эти данные для дальнейшего анализа, обработки или импорта в другие системы, ручное извлечение табличных данных из PDF становится громоздким и сопряжено с ошибками. Поэтому автоматизация извлечения табличных данных из PDF-файлов стала важным требованием.

Для достижения этой цели, я попробовал общие библиотеки с открытым исходным кодом, такие как iTextSharp и PdfSharp. из Интернета, чтобы найти соответствующие учебники несколько лет назад, и использование результатов не очень хорошо, некоторые из кода не работает. Наконец, я обнаружил, что использование Free Spire.Office for .NET для извлечения табличных данных более удобно, а показатель точности очень высок. В этой статье я поделюсь двумя фрагментами кода C#, которые будут извлекать табличные данные из PDF и сохранять их в TXT-файл и Excel-файл соответственно.

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 9

Создание собственного элемента на примере таблицы на C# для Windows Form

Время на прочтение 6 мин
Количество просмотров 24K
Доброго времени суток!

В данной статье я опишу создания своих элементов для C# Windows Form.

Для примера буду создавать таблицу со всем функционалом DataGridView. Позже перейдем на свои элементы. Создание первого элемента разобьем на несколько уроков. В данном уроке произведем от рисовку таблицы, а также: создание столбцов, строк, ячеек.

Для написания будем использовать .Net FrameWork 4.7.x, среда разработки Visual Studio 2019.

В первую очередь создадим обычный проект Windows Form. Думаю не нужно это показывать. А уже потом создаем проект «Библиотека элементов управления Windows Form»(Назовем его CustomControl).

Далее у нас будет создан файл UserControl.cs. Удаляем его и создаем обычный класс TableCustoms.cs.Наш класс будет наследоваться от класса Control.
Читать дальше →
Всего голосов 16: ↑9 и ↓7 +2
Комментарии 20

<dl> или <table>? Исследуем подходы к представлению пар ключ-значение в HTML

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.8K

Казалось бы, простая задача - сверстать список пар ключ-значение. Бери <div> и делай. Но что, если захотелось подушнить? Этим и займёмся в статье...
Рассмотрим три подхода к решению этой задачи: <div>, <dl>, <dt>, и <dd>, и <table>. Обсудим преимущества, недостатки и примеры.
Цель - помочь выбрать наиболее подходящий подход для конкретной задачи.

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Комментарии 15

Проблемы рендера семи тысяч элементов на Vuetify

Время на прочтение 8 мин
Количество просмотров 9.9K

На момент написания статьи я готовился к диплому и писал дипломный проект для нужд Московского Политеха. Моей задачей был перенои существующего функционал из PHP-таблицы во что-то современное с кучей проверок, после чего дополнить данный функционал. Движок - Nuxt, материал-фреймворк: Vuetify.

После написания таблицы и импорта 150+ проектов я впервые столкнулся с проблемой, что я рендерю слишком много, как для движка, так и для самого браузера. Таблицы Vuetify не подходили для моего решения: пришлось начать думать и погружаться. Погрузимся вместе со мной?

Погружаемся
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 25

BI-специалист: что по зарплатам, где и чему учиться и на что обращают внимание работодатели?

Время на прочтение 3 мин
Количество просмотров 33K

Привет! На связи ребята из Hays, и снова полезный, но нескучный материал про очередную профессию. С развитием тренда на цифровизацию профессии в сфере Business Intelligence становятся все более востребованными. Еще каких-то 10 лет назад про них никто не слышал, а сегодня такой отдел есть почти в каждой крупной компании — и работодатели активно обращаются к нам за помощью. А мы опять рады поделиться своей экспертизой и рассказать, кто такой BI-специалист и чем он занимается.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 0

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

Время на прочтение 5 мин
Количество просмотров 10K

Меня зовут Александра, я дизайнер из Ozon в SX — Seller Experience. Сегодня расскажу продуктовую историю о таблицах и дизайн-долге.

Иногда приходится работать с устаревшими системами, при этом ресурсов на улучшение нет, и поэтому новые доработки внедряются с минимальными изменениями. Каждая новая функциональность всё больше и больше усложняет систему, делая её сложной для использования, а новым сотрудникам тяжело вникать в проект (да, легаси бывает не только у разработчиков). 

Так было и с нашим продуктом, который накопил много недочётов. Работа без компонентов усложняла внедрение нового как со стороны дизайна, так и со стороны фронтенда. От неконсистентности страдали и пользователи. Особенно плохи были дела с таблицами. Настолько, что пользователи вручную увеличивали страницу, чтобы найти горизонтальный скролл. Нагруженные таблицы — вечная боль, и ресурсов на возврат дизайн-долга и техдолга, как всегда, нет — новые фичи сами себя не спроектируют. Под катом наша история решения большой задачи с низким приоритетом. 

Как поступила команда
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 13

React: решение интересной практической задачи

Время на прочтение 15 мин
Количество просмотров 8.3K


Привет, друзья!


В данном туториале я хочу поделиться с вами опытом решения одной интересной практической задачи.


Предположим, что у нас имеется страница сравнения товаров. На этой странице отображается слайдер с карточками товаров и таблица с их характеристиками. Задача состоит в том, чтобы синхронизировать переключение слайдов и прокрутку таблицы. Условия следующие:


  • ширина таблицы должна соответствовать ширине слайдера;
  • ширина колонки таблицы должна соответствовать ширине слайда;
  • слайды можно переключать с помощью перетаскивания, нажатия на кнопки управления и элементы пагинации;
  • таблицу можно прокручивать с помощью колесика мыши (на десктопе) и перемещения указателя (на телефоне);
  • при взаимодействии пользователя с одним компонентом второй должен реагировать соответствующим образом: при переключении слайда должна выполняться прокрутка таблицы, при прокрутке таблицы — переключение слайдов.

Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 6

Работаем с таблицами с помощью React Table

Уровень сложности Сложный
Время на прочтение 24 мин
Количество просмотров 23K


Привет, друзья!


В этом туториале я покажу вам несколько полезных приемов по работе с таблицами с помощью React Table.


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


Мы последовательно реализуем 5 вариантов таблицы:


  • с возможностью сортировки строк;
  • с возможностью фильтрации строк;
  • с пагинацией;
  • с возможностью выбора строк;
  • комплексную.

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


Предполагается, что вы имеете некоторый опыт работы с React и TypeScript.


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 4

Календарь: Таблица или Список?

Время на прочтение 4 мин
Количество просмотров 5.6K

Предыстория


На поиски по теме, указанной в заголовке меня сподвигла задача сверстать календарь для нашей системы отчетов. Что примечательно, мои действия почти в точности повторяли действия автора статьи, которую я нашел и перевёл (под катом).
Встав перед задачей сверстать календарь я тоже «мыслил анти-таблично», и после не долгих раздумий сварганил из списка календарец. Но к концу рабочего дня и всех мытарств, меня переклинило по дороге домой тоже, что и автора статьи — а как быть с днями недели?
По пути я обдумал этот вопрос и сформулировал запрос для Google — calendar table or list. Первая же ссылка привлекла меня и подтвердила мои соображения относительно того что календарь это всё-таки таблица а не список.
Я не претендую на оригинальность, конечно же, и возможно эта тема уже поднималась, но именно в таком разрезе я её ещё не встречал. В русскоязычной части интернета я ещё как-то читал статью Neutrino о его опыте вёрстки календаря, тогда я ещё удивился предложенному решению, но к сожалению тогда о семантике я мало задумывался)
Для предотвращения возможных будущих заблуждений, я решил перевести найденную статью, так как она вполне убедительна и раскрывает довольно полно затронутую тему. Надеюсь, также на вашу критику перевода, так как с переводом у меня не всё гладко, по-моему)


Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 28

AngularJS: еще одна таблица с сортировкой, фильтрацией и постраничной навигацией

Время на прочтение 5 мин
Количество просмотров 42K

Что это?


Это очередное AngularJS приложение, которое добавляет в обычную таблицу возможности сортировки, фильтрации, разбиения на страницы и пр.

Разумеется, существует несколько готовых решений (1, 2, 3, 4, 5), но они не подходили по ряду причин. В итоге, было решено создать свой вариант, тем более, что я не имею большого работы с AngularJS, а изучать этот фреймворк и его потрясающие возможности лучше на практике.
Подробности
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 2

Простой PHP генератор сложных HTML таблиц

Время на прочтение 5 мин
Количество просмотров 49K
Всем привет. Хочу поделиться свеженаписанным генератором HTML таблиц.

Участились случаи сбора различной статистики и компоновки ее в сложные таблицы с различными групировками.

image

Заметив такую тенденцию решил автоматизировать рисование таблиц.

Как итог:
  • Избавил себя от составления слоеных циклов для вывода массива;
  • Получил стандартизацию структуры массивов;
Читать дальше →
Всего голосов 37: ↑29 и ↓8 +21
Комментарии 19

Шайбу вбросим в iOS восемь

Время на прочтение 6 мин
Количество просмотров 42K
Прежде чем создавать казуальную игру для iOS, хорошо бы ответить на вопрос: — А зачем?
Вариантов три:
  • Срубить денег;
  • Порадовать родственников;
  • Хрен его знает, но мысль жжет организм изнутри.


image

Думаю, в ближайшие годы, правильный ответ — третий.
А, не буду спорить и учить — расскажу, как я делаю приложения.
Гуру разработки молча нажимают плюс и уходят в сторону. Остальные следуют за мной, чтобы вспомнить школу и настольный хоккей.
И да, уникальность топика, что в каждом предложении слова начинаются разными буквами.
В статье девять картинок и пол-минуты забавной анимации.
Читать дальше →
Всего голосов 76: ↑68 и ↓8 +60
Комментарии 62

tmsTable — как я писал плагин для отображения таблиц, руководствуясь принципом KISS

Время на прочтение 4 мин
Количество просмотров 4.3K
«KISS (keep it short and simple — «делай короче и проще») — процесс и принцип проектирования, при котором простота системы декларируется в качестве основной цели и/или ценности.» Wikipedia

Введение


Именно так в последнее время я все больше склоняюсь трактовать аббревиатуру KISS и писать программные компоненты для различного рода продуктов. Именно по этому принципу написана предлагаемая в данном обзоре библиотека. И именно поэтому она будет развиваться в заданном ключе в будущем.

Скажу сразу, я никогда не работал как JS-программист. Все 15 лет своей карьеры занимался в большей степени серверной стороной. Что касается клиентской стороны, чаще отвечал за проектирование интерфейсов, а верстку доверял профессионалам.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 3

Таблицы! Таблицы? Таблицы…

Уровень сложности Простой
Время на прочтение 16 мин
Количество просмотров 55K

В статье я покажу стандартную табличную разметку, какие у неё есть альтернативы. Дам пример собственной таблицы и разметки, а также опишу общие моменты её реализации.

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 26

Копирование структуры таблицы в MS SQL 2005

Время на прочтение 1 мин
Количество просмотров 22K
Задача — есть таблица, нужно создать ее копию… или пустую таблицу с такой же структурой…

Раньше я обычно использовал для этих целей DTS, поскольку потребность в копировании возникала редко и обычно касалась одной таблицы. Меня не ломало запустить Enterprise Manager / Management Studio.

Сегодня возникла необходимость копировать таблицы… много, разные и не выходя за рамки разрабатываемой программульки… т.е. DTS не предлагать, и вообще желательно обойтись только T-SQL'ем.

«ой мамочки, это ж теперь надо получив имя исходной таблицы содрать с нее create statement, не забыть бы про constraints и foreign keys… :( » — подумалось мне.

и тут, о чудо! обнаруживается способ копировать структуру таблицы в одну строку:

select * into [destinationTable] from [sourceTable] where 0 = 1

Если таблица [destinationTable] не существует то она будет создана! С такими же колонками, индексами и прочим. Правда потеряются foreign keys, но танцевать с бубном теперь прийдется гораздо меньше :D

З.Ы.: возможно это боян, но о таком поведении select..into я не знал :")
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 6

Практический HTML: работаем с таблицами

Время на прочтение 1 мин
Количество просмотров 1.8K
Примечание: ниже находится перевод статьи «Bring on the tables», в которой рассматривается использование таблиц по прямому назначению и некоторые методы по увеличению их доступности.

UPD: текст статьи полностью убран в связи с его неконтролируемыми преобразованиями с момента публикации.
Всего голосов 65: ↑60 и ↓5 +55
Комментарии 106

Создаем высокопроизводительные HTML-страницы для IE

Время на прочтение 1 мин
Количество просмотров 853
Примечание: ниже находится перевод статьи с MSDN «Building High Performance HTML Pages», в которой приводится ряд советов от экспертов из Microsoft по оптимизации времени загрузки страниц. Очень интересно сравнить их подход с аналогичным для Yahoo!. На мой взгляд, большая часть советов уже не является такой актуальной (спасибо Zeroglif, все приведенные советы, скорее всего, десятилетней давности), но в свое время все они были весьма действенны. Мои комментарии далее курсивом.

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

Коммуникационные возможности, обеспечиваемые Microsoft Internet Explorer 4.0 и более поздними версиями, помогли превратит Веб в мощное пространство, где можно как работать, так и играть. Число HTML-страниц и их сложность вместе с общим количеством потребителей конечных продуктов существенно увеличили общий интернет-трафик. Вместе со всеми выгодами, которые получили разработчики приложений, это привело и к ряду проблем. Среди этих проблем можно выделить:

  • Доставка содержания через интернет (across the wire).
  • Будучи доставленным, содержание должно быстро отобразиться на экране.


В этой статьи предлагается несколько советов, как добиться максимальной производительности ваших страниц.
читать дальше на webo.in →
Всего голосов 49: ↑34 и ↓15 +19
Комментарии 31

Управление потоком в CSS: создаём контекст форматирования

Время на прочтение 4 мин
Количество просмотров 5.1K
Управлять потоком можно не только свойствами clear или overflow. Возможно, вы найдёте полезным для себя использование display:inline-block или display:table-cell, способных полностью заменить вам упомянутый overflow, избавляя вас от опасности указания размеров элемента, а также предоставляя дополнительные возможности.

Статья не содержит универсальных решений, но открывает вашему взору дополнительный инструментарий для управления потоком.
Читать дальше →
Всего голосов 66: ↑63 и ↓3 +60
Комментарии 34

Samsung CIS Forum 2012: быстрее, выше, ШИРЕ!

Время на прочтение 6 мин
Количество просмотров 2.5K
День добрый, хабражители!

Есть у нас одна добрая традиция: каждый год компания Samsung Electronics проводит форум для представителей из стран СНГ, на котором рассказывает о своих успехах в прошедшем году и демонстрирует самые свежие продуктовые новинки. На этот раз сие действо прошло в Праге 16 и 17 февраля. Были представлены телевизоры, планшеты, телефоны, ноутбуки, стиральные машины, пылесосы и многое другое. Спешите узнать, как это было!

Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 4
1