Я нашел эту библиотеку — TableJs — которая решает эту проблему. Отлично работает в клиентах для настольных ПК, однако клиенты Android не отображали его должным образом.
Aditya 3 Сен 2019 в 06:07
У меня была та же проблема на Android, но я исправил ее, переопределив свойство config.border и используя более простой набор символов.
18 Янв 2022 в 20:18
«`| Symbol | Price | Change | |———|——-|———| | ABC | 20.85 | 1.626 | | DEF | 78.95 | 0.099 | | GHI | 23.45 | 0.192 | | JKL | 98.85 | 0.292 |«`
iliyesku 15 Янв 2020 в 13:03
Вам необходимо установить параметр parse_mode = ParseMode.MARKDOWN_V2, чтобы это работало.
22 Апр 2021 в 19:24
Установите для параметра Telegram API parse_mode значение HTML . и оберните сообщение в , но помните, что API Telegram не поддерживает вложенные теги.
| Tables | Are | Cool | |———-|:————-:|——:| | col 1 is | left-aligned | $1600 | | col 2 is | centered | $12 | | col 3 is | right-aligned | $1 |
Результат в мессенджере Telegram:
#15. Из таблицы в Телеграм. Как настроить Telegram-рассылку
Обновлено. Как преобразовать таблицы на картинке
Будет проблема на маленьких экранах смартфонов. Так что этот метод не годится. Единственный вариант — преобразовать таблицы на картинке и отправить:
- Или вы можете преобразовать HTML в изображение, используя браузер без заголовка на вашем сервере.
- Или вы можете преобразовать HTML в изображение, используя здесь внешние службы API
- Или вы можете преобразовать HTML в изображение более сложным способом: php GD
Ruslan Novikov 13 Май 2021 в 21:16
Как преобразовать таблицу в картинку?
13 Апр 2021 в 02:16
Как я могу преобразовать фреймворк pandas в этот формат html? Я пробовал df.to_html (), но это не сработало.
3 Ноя 2021 в 18:58
Кундан, я не знаю фреймворка pandas для Python. Но я знаю, что слишком сложно преобразовать любой HTML в формат RTF для сообщения Telegram. Вам следует использовать службу Telegram, например, просматривать статьи в формате HTML telegram.org/blog/instant-view в ваш проект
Ruslan Novikov
4 Ноя 2021 в 11:55
Вы можете использовать разметку HTML или Markdown , чтобы отправить что-то вроде в HTML. Так же, как в этом примере.
Sean 18 Мар 2018 в 12:06
Или он может преобразовать таблицу в изображение.
18 Мар 2018 в 14:59
Импортируйте библиотеку «prettytable» в Python для форматирования таблицы:
import prettytable as pt from telegram import ParseMode from telegram.ext import CallbackContext, Updater def send_table(update: Updater, context: CallbackContext): table = pt.PrettyTable([‘Symbol’, ‘Price’, ‘Change’]) table.align[‘Symbol’] = ‘l’ table.align[‘Price’] = ‘r’ table.align[‘Change’] = ‘r’ data = [ (‘ABC’, 20.85, 1.626), (‘DEF’, 78.95, 0.099), (‘GHI’, 23.45, 0.192), (‘JKL’, 98.85, 0.292), ] for symbol, price, change in data: table.add_row([symbol, f», f»]) update.message.reply_text(f’ ‘, parse_mode=ParseMode.HTML) # or use markdown update.message.reply_text(f’«««’, parse_mode=ParseMode.MARKDOWN_V2)
Вы получите сообщение вроде:
Сбор данных из телеграм в таблицу
+———+——-+———+ | Symbol | Price | Change | +———+——-+———+ | ABC | 20.85 | 1.626 | | DEF | 78.95 | 0.099 | | GHI | 23.45 | 0.192 | | JKL | 98.85 | 0.292 | +———+——-+———+
Rioka 16 Апр 2021 в 10:35
Хорошее решение! К вашему сведению, это плохо с смайликами в названиях столбцов
20 Июл 2021 в 20:10
Форматирование текста как «Моноширинный» тоже работает
dnth 20 Июн 2020 в 09:58
Я написал код для создания html-таблицы Telegram из массива строк.
Просто создайте массив со строками с данными столбцов, разделенными «;» и этот код выведет готовую таблицу Telegram.
Наслаждайтесь, разберитесь с параметрами 🙂
Вы должны использовать «parse_mode» = «html» при отправке сообщения в Telegram Api.
public string BuildTelegramTable( List table_lines, string tableColumnSeparator = «|», char inputArraySeparator = ‘;’, int maxColumnWidth = 0, bool fixedColumnWidth = false, bool autoColumnWidth = false, int minimumColumnWidth = 4, int columnPadRight = 0, int columnPadLeft = 0, bool beginEndBorders = true) < var prereadyTable = new List() < «» >; var columnsWidth = new List(); var firstLine = table_lines[0]; var lineVector = firstLine.Split(inputArraySeparator); if (fixedColumnWidth maxColumnWidth == 0) throw new ArgumentException(«For fixedColumnWidth usage must set maxColumnWidth > 0»); else if (fixedColumnWidth maxColumnWidth > 0) < for(var x=0;xelse < for(var x=0;xcolumnFullLength = line.Split(inputArraySeparator)[x].Length > columnFullLength ? line.Split(inputArraySeparator)[x].Length : columnFullLength); columnFullLength = columnFullLength < minimumColumnWidth ? minimumColumnWidth : columnFullLength; var columnWidth = columnFullLength + columnPadRight + columnPadLeft; if (maxColumnWidth >0 columnWidth > maxColumnWidth) columnWidth = maxColumnWidth; columnsWidth.Add(columnWidth); > > foreach(var line in table_lines) < lineVector = line.Split(inputArraySeparator); var fullLine = new string[lineVector.Length+(beginEndBorders ? 2 : 0)]; if (beginEndBorders) fullLine[0] = «»; for(var x=0;xdataLength ? dataLength : columnSizeWithoutTrimSize; var columnData = clearedData.Substring(0,dataCharsToRead); columnData = columnData.PadRight(columnData.Length + columnPadRight); columnData = columnData.PadLeft(columnData.Length + columnPadLeft); var column = columnData.PadRight(columnWidth); fullLine[x+(beginEndBorders ? 1 : 0)] = column; > if (beginEndBorders) fullLine[fullLine.Length — 1] = «»; prereadyTable.Add(string.Join(tableColumnSeparator,fullLine)); > prereadyTable.Add(«»); return string.Join(«rn»,prereadyTable); >
Источник: question-it.com
Как отправить таблицы с помощью Telegram Bot API?
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит.
Ответы 6
Вы можете использовать разметку HTML или Уценка, чтобы отправить что-то вроде в HTML. Прямо как этот пример.
Или он может преобразовать таблицу в изображение.
18.03.2018 10:06
Установите для параметра Telegram API parse_mode значение HTML. и заверните сообщение в , но помните, что API Telegram не поддерживает вложенные теги.
| Tables | Are | Cool | |———-|:————-:|——:| | col 1 is | left-aligned | $1600 | | col 2 is | centered | $12 | | col 3 is | right-aligned | $1 |
Результат в мессенджере Telegram:
Обновлено. Как преобразовать таблицы на картинке
На маленьких экранах смартфонов будет проблема. Так что этот метод не годится. Единственный вариант — преобразовать таблицы на картинке и отправить:
- Или вы можете преобразовать HTML в изображение, используя браузер без заголовка на вашем сервере.
- Или вы можете преобразовать HTML в изображение, используя здесь внешний API сервисы
- Или вы можете преобразовать HTML в изображение более сложным способом с помощью php GD
Как преобразовать таблицу в картинку?
21.05.2019 14:50
Я нашел эту библиотеку — TableJs — которая решает эту проблему. Отлично работает в клиентах для настольных ПК, однако клиенты Android не отображали его должным образом.
03.09.2019 05:07
«`| Symbol | Price | Change | |———|——-|———| | ABC | 20.85 | 1.626 | | DEF | 78.95 | 0.099 | | GHI | 23.45 | 0.192 | | JKL | 98.85 | 0.292 |«`
Комментарии (1)
Вам необходимо установить параметр parse_mode = ParseMode.MARKDOWN_V2, чтобы это работало.
15.01.2020 11:03
Форматирование текста как «Моноширинный» тоже работает
20.06.2020 08:58
Импортируйте библиотеку «prettytable» в Python для форматирования таблицы:
import prettytable as pt from telegram import ParseMode from telegram.ext import CallbackContext, Updater def send_table(update: Updater, context: CallbackContext): table = pt.PrettyTable([‘Symbol’, ‘Price’, ‘Change’]) table.align[‘Symbol’] = ‘l’ table.align[‘Price’] = ‘r’ table.align[‘Change’] = ‘r’ data = [ (‘ABC’, 20.85, 1.626), (‘DEF’, 78.95, 0.099), (‘GHI’, 23.45, 0.192), (‘JKL’, 98.85, 0.292), ] for symbol, price, change in data: table.add_row([symbol, f», f»]) update.message.reply_text(f’ ‘, parse_mode=ParseMode.HTML) # or use markdown update.message.reply_text(f’«««’, parse_mode=ParseMode.MARKDOWN_V2)
Вы получите сообщение вроде:
+———+——-+———+ | Symbol | Price | Change | +———+——-+———+ | ABC | 20.85 | 1.626 | | DEF | 78.95 | 0.099 | | GHI | 23.45 | 0.192 | | JKL | 98.85 | 0.292 | +———+——-+———+
Источник: reddeveloper.ru
Как вставить таблицу в телеграмм
Предположим вы собираете заявки с Tilda. Но хотели бы получать уведомления в телеграм, как только поступит новая заявка.
Или вы запустили опросник в Google формах и все данные сохраняются в Google таблицы. Но вы бы хотели получать сообщения о том что появилась новая запись в telegram.
Схема по тому как это все организовать, следующая:
Integromat — Работает как интернет клей
Предположим вам надо сделать так, чтобы пользователь писал вам сообщение в телеграм, и у вас сразу дублировались эти данные на email и создавалась карточка Trello.
Для того чтобы связать между собой все эти инструменты используется промежуточное звено в виде Integromat.
Он нам поможет и в случае связки гугл таблиц и телеграма.
Cобираем заявки из Tilda в Google таблицы
- Перейдите в Настройки сайта → Формы → Google Таблицы (Google Sheets).
- Разрешите доступ к вашему аккаунту на Google. Будет создана новая таблица на Google Диске, куда будут попадать данные из форм.
- Подтвердите или пропустите шаг «Добавить сервис ко всем формам на сайте»
Источник: zamakhov.com