Как отправить таблицу excel в телеграмм

Содержание

  1. Сообщение в telegram из excel
  2. Импорт контактов из Excel в Telegram: ручная процедура
  3. Шаг 1. Преобразуйте электронную таблицу Excel в файл CSV.
  4. Шаг 2. Контакты из файла CSV можно импортировать
  5. Шаг 3. Экспорт контактов в файл VCF
  6. Профессиональный инструмент для импорта контактов из Excel в Telegram
  7. Следуйте простым процедурам, чтобы получить файл Telegram vCard
  8. Заключение
  9. Комментарии

Сообщение в telegram из excel

Telegram совместим со всеми платформами, включая смартфоны, планшеты и ноутбуки, что делает его идеальным как для личного, так и для делового использования. Он защищает разговоры между клиентами и сервером с помощью сквозного шифрования, а также обеспечивает отличную безопасность для своих пользователей. Он также позволяет изменять фон разговоров, получать уведомления и создавать ярлыки. Эти невероятные качества — вот что отличает его от других и делает его таким популярным среди пользователей.

Одним из наиболее широко используемых приложений для упорядоченного хранения данных является Microsoft Excel. Электронные таблицы Excel позволяют хранить огромные объемы данных и выполнять действия быстрее, чем любое другое приложение. На листе Excel вы можете рисовать диаграммы, вставлять круговые диаграммы и сохранять контакты и другие данные. Все эти данные сохраняются в форматах MS-Excel .xlsx и.xls. Telegram, с другой стороны, принимает только файлы vCard. В результате мы должны научиться конвертировать файлы Excel в формат VCF, чтобы избежать таких ситуаций.

Импорт контактов из Excel в Telegram: ручная процедура

Шаг 1. Преобразуйте электронную таблицу Excel в файл CSV.

Чтобы импортировать контакты в Telegram, данные необходимо сначала преобразовать в формат CSV.

  • Открыть Файл Excel вы хотите преобразовать на свой компьютер.
  • На вершине правый угол окна Excel щелкните значок Офис кнопка.
  • Теперь выберите Сохранить как >> Другие форматы из раскрывающегося меню.
  • Выберите папка или место нахождения где вы хотите сохранить файл, в появившемся диалоговом окне сохранения.
  • Щелкните раскрывающееся меню в Сохранить как выбор типа.
  • Выбирать CSV (с разделителями-запятыми) (* csv) из раскрывающегося меню.
  • Спасти файл нажав на Сохранить вариант и выбирая да.
  • В Файл Excel теперь конвертируется в CSV.

Шаг 2. Контакты из файла CSV можно импортировать

  • Введите контакты в Стартовое окно.
  • Чтобы открыть контактное окно, щелкните значок контактов.
  • Выберите пользователи ты хочешь Импортировать и щелкните Вкладка Импорт.
  • Выбирать CSV (с разделителями-запятыми) (* CSV) file в качестве формата файла, который вы хотите импортировать.
  • Выберите CSV файл вы сделали ранее и нажмите Следующий.
  • В контакты из Excel будет импортировать.

Шаг 3. Экспорт контактов в файл VCF

  • Вернуться к Окно контактов и выберите Экспорт еще раз.
  • Выбирать визитки из выпадающего меню (папка с файлами .vcf).
  • Выбирать Экспорт из раскрывающегося меню.
  • Выбрать место нахождения где вы желаете преобразованные файлы сохранить.
  • Формат вашего файл Excel конвертируется в VCF (Telegram).

Вы можете вручную обработать запрос о том, как импортировать контакты в Telegram таким образом. Вышеупомянутый подход является ручным и бесплатным, но занимает много времени и неудобен; сторонний конвертер Excel в VCF предоставляет простой способ сделать то же самое.

Excel to vCard Converter — одна из таких программ, которая может выполнить эту работу за вас. На следующем шаге мы покажем вам, как импортировать контакты из группы Telegram с помощью конвертера Excel в VCF, который поможет вам ускорить процесс преобразования.

Профессиональный инструмент для импорта контактов из Excel в Telegram

Преобразователь Excel в vCard — это мощная программа, которая может преобразовывать электронную таблицу Excel CSV / XLSX / XLS в vCard и экспортировать всю информацию из таблицы Excel, такую ​​как имя, номер телефона и адрес электронной почты. Он также имеет параметр сопоставления полей: поля vCard могут отображаться на столбцы Excel. Используя инструмент Excel to vCard Converter, импортировать контакты из Excel в группу Telegram очень просто. Просто скачайте программу по ссылке ниже.

Следуйте простым процедурам, чтобы получить файл Telegram vCard

1. На вашей ПК с ОС Windows, установите Инструмент преобразования Excel в vCard программное обеспечение и запустите его.

2. Добавить Контактный файл Excel в программное обеспечение, из которого вы хотите импортировать контакты в Telegram, нажав кнопку Просматривать вариант.

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

4. Выберите подходящее поле из Поля vCard раздел для Столбец Excel. Чтобы сопоставить все поля контактов Excel с полями vCard, щелкните Добавлять и повторите процесс.

5. К Добавить контакт в Telegram из Excel, мы должны щелкнуть Следующая кнопка после того, как поля контактов Excel были правильно заполнены нанесенный на карту к данным vCard.

6. Выберите для создания одиночная визитная карточка от vCard версии 2.1 / 3.0 / 4.0 выпадающее меню. Теперь нам нужно выбрать место для сохранения выходной vCard и щелкнуть Перерабатывать кнопка.

После этого вы можете начать процесс импорта контактов из Excel в Telegram, импортировав полученную vCard в свою учетную запись Gmail, связанную с вашим телефоном Windows или Android. Это можно сделать следующим образом:

  • Открытым Google Контакты после входа в свою учетную запись Gmail.
  • Выберите экспортированный файл vCard из меню Импорт. Щелкните значок Открытым кнопка.
  • После этого все vCard контакты будет импортировать в Google Контакты.

Теперь откройте Контакты Telegram и обновите свой список контактов. Все контакты CSV появятся в вашем списке контактов Telegram. Итак, у вас есть простой способ импортировать контакты из Excel в Telegram.

Заключение

Этот пост ответит на все ваши вопросы о том, как импортировать контакты из Excel в Telegram. С другой стороны, ручные методы имеют ряд серьезных недостатков, которые заставляют людей дважды подумать перед их использованием. В результате также рекомендуется решение для импорта контактов из Excel в Telegram, которое является как автоматическим, так и безошибочным.

Добрый день, эксперты!

Function RussianStringToURLEncode_New(ByVal txt As String) As String
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
Select Case AscW(l)
Case Is > 4095: t = «%» & Hex(AscW(l) 64 64 + 224) & «%» & Hex(AscW(l) 64) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case Is > 127: t = «%» & Hex(AscW(l) 64 + 192) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case 32: t = «%20»
Case Else: t = l
End Select
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t
Next
End Function

Прошу подсказать, где я допускаю ошибку.

Заранее спасибо. :help:

Добрый день, эксперты!

Function RussianStringToURLEncode_New(ByVal txt As String) As String
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
Select Case AscW(l)
Case Is > 4095: t = «%» & Hex(AscW(l) 64 64 + 224) & «%» & Hex(AscW(l) 64) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case Is > 127: t = «%» & Hex(AscW(l) 64 + 192) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case 32: t = «%20»
Case Else: t = l
End Select
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t
Next
End Function

Прошу подсказать, где я допускаю ошибку.

Заранее спасибо. :help: lanitfin

Function RussianStringToURLEncode_New(ByVal txt As String) As String
For i = 1 To Len(txt)
l = Mid(txt, i, 1)
Select Case AscW(l)
Case Is > 4095: t = «%» & Hex(AscW(l) 64 64 + 224) & «%» & Hex(AscW(l) 64) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case Is > 127: t = «%» & Hex(AscW(l) 64 + 192) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
Case 32: t = «%20»
Case Else: t = l
End Select
RussianStringToURLEncode_New = RussianStringToURLEncode_New & t
Next
End Function

Прошу подсказать, где я допускаю ошибку.

Заранее спасибо. :help: Автор — lanitfin
Дата добавления — 17.05.2021 в 13:17

Чтобы понимал бот html, надо ему это указать
sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML»

Чтобы понимал бот html, надо ему это указать
sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML» doober

doober, у меня не получается, или до меня не доходит=) у меня еще не такой продвинутый уровень VBA.
можете в коде показать, что нужно добавить/изменить?

doober, у меня не получается, или до меня не доходит=) у меня еще не такой продвинутый уровень VBA.
можете в коде показать, что нужно добавить/изменить? lanitfin

Отправляемый текст
Message «http://www.excelworld.ru/forum/10-47549-1″»>ссылка на эту тему»
Результат

Отправляемый текст
Message «http://www.excelworld.ru/forum/10-47549-1″»>ссылка на эту тему»
Результат
doober

doober, у нас с Вами могут отличаться версии Excel?

Копирую полностью Вашу строку и получаю:

во-первых Кириллица отображается как «. «
во-вторых: почему — то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.

Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера.

doober, у нас с Вами могут отличаться версии Excel?

Копирую полностью Вашу строку и получаю:

во-первых Кириллица отображается как «. «
во-вторых: почему — то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.

Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера. lanitfin

Копирую полностью Вашу строку и получаю:

во-первых Кириллица отображается как «. «
во-вторых: почему — то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.

Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера. Автор — lanitfin
Дата добавления — 24.05.2021 в 10:25

А что, у меня есть файл ваш?
Я для примера показал, как перенос, как ссылку вставлять Автор — doober
Дата добавления — 24.05.2021 в 16:00

doober, да, работает. Спасибо. коды еще пока не сравнивал.

Sub MessegeToTelegram1()
Dim Token As String, ChatID As String, message As String, strPhoto As String
Dim sURL As String, oHttp As Object, sHTML As String
‘ первая строка
message = Range(«B38»).Text & «t» & _
» » & Range(«j38»).Text & «t» & _
» (» & Range(«I38»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C38»).Text & «t» & _
Range(«D38»).Text & «n» & _
«слово: » & Range(«F38»).Text & «n» & _
«ключ: » & Range(«G38»).Text & «n» & _
Range(«K38»).Text & «n» & _
«тема: » & Range(«H38»).Text

‘ Вторая строка
message = Range(«B39»).Text & «t» & _
» » & Range(«j39»).Text & «t» & _
» (» & Range(«I39»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C39»).Text & «t» & _
Range(«D39»).Text & «n» & _
«Слово: » & Range(«F39»).Text & «n» & _
«Ключ: » & Range(«G39»).Text & «n» & _
Range(«K39»).Text & «n» & _
«ТЕМА: » & Range(«H39»).Text

‘ Третья строка- пустая
message = Range(«B39»).Text & «t» & _
» » & Range(«j40»).Text & «t» & _
» (» & Range(«I40»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C40»).Text & «t» & _
Range(«D40»).Text & «n» & _
«Слово: » & Range(«F40»).Text & «n» & _
«ключ: » & Range(«G40»).Text & «n» & _
Range(«K40»).Text & «n» & _
«тема: » & Range(«H40»).Text

doober, да, работает. Спасибо. коды еще пока не сравнивал.

Sub MessegeToTelegram1()
Dim Token As String, ChatID As String, message As String, strPhoto As String
Dim sURL As String, oHttp As Object, sHTML As String
‘ первая строка
message = Range(«B38»).Text & «t» & _
» » & Range(«j38»).Text & «t» & _
» (» & Range(«I38»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C38»).Text & «t» & _
Range(«D38»).Text & «n» & _
«слово: » & Range(«F38»).Text & «n» & _
«ключ: » & Range(«G38»).Text & «n» & _
Range(«K38»).Text & «n» & _
«тема: » & Range(«H38»).Text

‘ Вторая строка
message = Range(«B39»).Text & «t» & _
» » & Range(«j39»).Text & «t» & _
» (» & Range(«I39»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C39»).Text & «t» & _
Range(«D39»).Text & «n» & _
«Слово: » & Range(«F39»).Text & «n» & _
«Ключ: » & Range(«G39»).Text & «n» & _
Range(«K39»).Text & «n» & _
«ТЕМА: » & Range(«H39»).Text

‘ Третья строка- пустая
message = Range(«B39»).Text & «t» & _
» » & Range(«j40»).Text & «t» & _
» (» & Range(«I40»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C40»).Text & «t» & _
Range(«D40»).Text & «n» & _
«Слово: » & Range(«F40»).Text & «n» & _
«ключ: » & Range(«G40»).Text & «n» & _
Range(«K40»).Text & «n» & _
«тема: » & Range(«H40»).Text

Sub MessegeToTelegram1()
Dim Token As String, ChatID As String, message As String, strPhoto As String
Dim sURL As String, oHttp As Object, sHTML As String
‘ первая строка
message = Range(«B38»).Text & «t» & _
» » & Range(«j38»).Text & «t» & _
» (» & Range(«I38»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C38»).Text & «t» & _
Range(«D38»).Text & «n» & _
«слово: » & Range(«F38»).Text & «n» & _
«ключ: » & Range(«G38»).Text & «n» & _
Range(«K38»).Text & «n» & _
«тема: » & Range(«H38»).Text

‘ Вторая строка
message = Range(«B39»).Text & «t» & _
» » & Range(«j39»).Text & «t» & _
» (» & Range(«I39»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C39»).Text & «t» & _
Range(«D39»).Text & «n» & _
«Слово: » & Range(«F39»).Text & «n» & _
«Ключ: » & Range(«G39»).Text & «n» & _
Range(«K39»).Text & «n» & _
«ТЕМА: » & Range(«H39»).Text

‘ Третья строка- пустая
message = Range(«B39»).Text & «t» & _
» » & Range(«j40»).Text & «t» & _
» (» & Range(«I40»).Text & «)» & «n» & _
«ИМЯ: » & Range(«C40»).Text & «t» & _
Range(«D40»).Text & «n» & _
«Слово: » & Range(«F40»).Text & «n» & _
«ключ: » & Range(«G40»).Text & «n» & _
Range(«K40»).Text & «n» & _
«тема: » & Range(«H40»).Text

Вот код (не мой), тут просто отправка текста латиницей. Короче понимаю, что тут все просто для тех кто шарит, но я еще только осваиваю. Прошу помочь.

Задача: отправка текста с определенных ячеек Excel по кнопке.

Так, а в чем проблема то? Пишете обработчик на клик, выбираете из Excel нужные данные и дёргаете API sendmessage ..

Я паялник , только недавно коснулся темы подобной , и ночи стали бессонными ) но тут я чесно нехрена не понимаю (пардон) можно пожалуйста пример маленький .)) Благодарен буду .

Для заказа аналогичной настройки парсера — высылайте заказ на почту

Комментарии

Как можно узнать по стоимости данной услуги,хочу настроить тот на баскетбол?

А Марафон может забанить сбор данных с его сайта и как с этим бороться?

Здравствуйте!Такой же парсер для хоккея сколько $ ?

Добрый день! От 7 тысяч за всё вместе. Точная цена при наличии полного техзадания.

Здравствуйте! Интересует парсер с сайта Бет Сити по определенным критериям с выводом в телеграмм, Сколько это стоит? Функции примерно те же что и в примерном видео, только добавляются необходимые критерии, определенные ситуации по ходу встречи команд, определенное время в матче и счет в игре.

Источник

Отправка таблицы с данными в Телеграм

lanitfin

Дата: Понедельник, 17.05.2021, 13:17 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

Добрый день, эксперты!

Подскажите, пожалуйста, как- то можно отправить через Excel(VBA) таблицу с данными. То есть, к примеру, у меня есть таблица c данными на листе в ячейках B38:J39.
Эту таблицу хотелось бы отправить в телеграм. Вижу пока только два варианта: отправка каждой строки в отдельном сообщении, где построчно будут данные из столбцов каждой строки; Либо отдельным макросом сначала формировать скриншот этого диапазона, отправлять его картинкой и удалять этот скриншот.
Собрал вот такой код, он рабочий, но он отправляет данные только из одной ячейки, и если в ячейке есть переносы на другую строку, то текст всё равно приходит в «слипшимся» виде(т.е. без переносов):
[vba]

Код

Function RussianStringToURLEncode_New(ByVal txt As String) As String
    For i = 1 To Len(txt)
        l = Mid(txt, i, 1)
        Select Case AscW(l)
            Case Is > 4095: t = «%» & Hex(AscW(l) 64 64 + 224) & «%» & Hex(AscW(l) 64) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
            Case Is > 127: t = «%» & Hex(AscW(l) 64 + 192) & «%» & Hex(8 * 16 + AscW(l) Mod 64)
            Case 32: t = «%20»
            Case Else: t = l
        End Select
        RussianStringToURLEncode_New = RussianStringToURLEncode_New & t
    Next
End Function

Sub MessegeToTelegram1()
    Dim Token As String, ChatID As String, message As String, strPhoto As String
    Dim sURL As String, oHttp As Object, sHTML As String
    message = RussianStringToURLEncode_New(Range(«B38»).Text) ‘ отправляется текст из ячейки B34
    ‘message = RussianStringToURLEncode_New(Range(«B38»).Text)
    ‘strPhoto = ConvertFileToBase64(«C:Users………Desktop12.jpg»)
    ‘strPhoto = «C:Users…….Desktop12.jpg»
    Token = «……:……..»
    ChatID = «………….»
    sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message
    Set oHttp = CreateObject(«Msxml2.XMLHTTP»)
    oHttp.Open «POST», sURL, False
    oHttp.Send
    Set oHttp = Nothing
End Sub

[/vba]

Вообще возможно, чтобы в телеграм сообщение приходило построчно, т.е. одна ячейка= одна строка:
Первое сообщение:
Первая строка: данные из ячейки B38
Вторая строка: данные из ячейки С38
.
.
.
Последняя строка: данные из ячейки J38

Второе сообщение:
Первая строка: данные из ячейки B39
Вторая строка: данные из ячейки С39
.
.
.
Последняя строка: данные из ячейки J39
и т.д.

Не совсем еще представляю как это реально будет выглядеть и «удобочитаемо» ли это будет, по-этому еще пытался сделать отправку скришота таблицы в JPG, но тут так и не понял как правильно отправить файл с локального диска.

Прошу подсказать, где я допускаю ошибку.

Заранее спасибо. :help:

К сообщению приложен файл:

_____.xlsm
(22.1 Kb)

 

Ответить

lanitfin

Дата: Среда, 19.05.2021, 13:38 |
Сообщение № 2

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

Добрый день! Тут есть решение какое- то?

 

Ответить

doober

Дата: Среда, 19.05.2021, 20:00 |
Сообщение № 3

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

Чтобы понимал бот html, надо ему это указать
sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message
sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML»


 

Ответить

lanitfin

Дата: Четверг, 20.05.2021, 14:20 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

не совсем понимаю что мне это даст.
добавил «&parse_mode=HTML» , но ничего не поменялось.

Сообщение отредактировал Serge_007Четверг, 20.05.2021, 14:47

 

Ответить

doober

Дата: Четверг, 20.05.2021, 21:40 |
Сообщение № 5

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

Надо текст формировать в формате html, и тогда можно делать любую разметку.
Таблицу и т.д. оправить


 

Ответить

lanitfin

Дата: Пятница, 21.05.2021, 09:48 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

doober, у меня не получается, или до меня не доходит=) у меня еще не такой продвинутый уровень VBA.
можете в коде показать, что нужно добавить/изменить?

 

Ответить

doober

Дата: Воскресенье, 23.05.2021, 21:12 |
Сообщение № 7

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

Отправляемый текст
Message = «B38tС38nB39tС39nJ38nn<a href=»»http://www.excelworld.ru/forum/10-47549-1″»>ссылка на эту тему</a>»
Результат


Сообщение отредактировал dooberВоскресенье, 23.05.2021, 21:13

 

Ответить

lanitfin

Дата: Понедельник, 24.05.2021, 10:25 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

doober, у нас с Вами могут отличаться версии Excel?

Копирую полностью Вашу строку и получаю:

во-первых Кириллица отображается как «????»
во-вторых: почему — то нет ни пробелов, ни переносов. И указываются не значения ячеек, а адрес ячейки. У Вас тоже приходят адреса ячеек, а не значения ячеек.

Ссылка работает, но замысел был в том, чтобы сриншот/таблица/документ выгружался с локального компьютера.

 

Ответить

Serge_007

Дата: Понедельник, 24.05.2021, 10:26 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Кириллица отображается как «????»

Копируйте в русской раскладке, а не в ENG


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

doober

Дата: Понедельник, 24.05.2021, 16:00 |
Сообщение № 10

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

И указываются не значения ячеек, а адрес ячейки

А что, у меня есть файл ваш?
Я для примера показал, как перенос, как ссылку вставлять


 

Ответить

lanitfin

Дата: Вторник, 25.05.2021, 09:07 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

doober, Я же прикрепил файл к первому сообщению.
Перенос не срабатывает по какой- то причине.

 

Ответить

doober

Дата: Вторник, 25.05.2021, 11:04 |
Сообщение № 12

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

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


 

Ответить

lanitfin

Дата: Вторник, 25.05.2021, 16:13 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8

doober, да, работает. Спасибо. коды еще пока не сравнивал.

Подскажите, пожалуйста, правильно ли я делаю построчные сообщения(каждое сообщение- отдельная строка):
[vba]

Код

Sub MessegeToTelegram1()
    Dim Token As String, ChatID As String, message As String, strPhoto As String
    Dim sURL As String, oHttp As Object, sHTML As String
    ‘ первая строка
                message = Range(«B38»).Text & «t» & _
                    » » & Range(«j38»).Text & «t» & _
                   » (» & Range(«I38»).Text & «)» & «n» & _
            «ИМЯ: » & Range(«C38»).Text & «t» & _
                           Range(«D38»).Text & «n» & _
          «слово: » & Range(«F38»).Text & «n» & _
           «ключ: » & Range(«G38»).Text & «n» & _
                           Range(«K38»).Text & «n» & _
           «тема: » & Range(«H38»).Text

      ‘strPhoto = ConvertFileToBase64(«C:Users…..Desktop12.jpg»)
    ‘strPhoto = «C:Users…….Desktop12.jpg»
     message = URLEncode(message)
    Token = «………………»
    ChatID = «…………………..»
  sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML»
    Set oHttp = CreateObject(«Msxml2.XMLHTTP»)
    oHttp.Open «POST», sURL, False
    oHttp.Send
    Set oHttp = Nothing

        ‘ Вторая строка
    message = Range(«B39»).Text & «t» & _
                    » » & Range(«j39»).Text & «t» & _
                   » (» & Range(«I39»).Text & «)» & «n» & _
            «ИМЯ: » & Range(«C39»).Text & «t» & _
                           Range(«D39»).Text & «n» & _
         «Слово: » & Range(«F39»).Text & «n» & _
          «Ключ: » & Range(«G39»).Text & «n» & _
                          Range(«K39»).Text & «n» & _
         «ТЕМА: » & Range(«H39»).Text

      ‘strPhoto = ConvertFileToBase64(«C:Users…..Desktop12.jpg»)
    ‘strPhoto = «C:Users…….Desktop12.jpg»
     message = URLEncode(message)
    Token = «………….»
    ChatID = «……………..»
  sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML»
    Set oHttp = CreateObject(«Msxml2.XMLHTTP»)
    oHttp.Open «POST», sURL, False
    oHttp.Send
    Set oHttp = Nothing

        ‘ Третья строка- пустая
    message = Range(«B39»).Text & «t» & _
                    » » & Range(«j40»).Text & «t» & _
                   » (» & Range(«I40»).Text & «)» & «n» & _
            «ИМЯ: » & Range(«C40»).Text & «t» & _
                          Range(«D40»).Text & «n» & _
        «Слово: » & Range(«F40»).Text & «n» & _
          «ключ: » & Range(«G40»).Text & «n» & _
                          Range(«K40»).Text & «n» & _
          «тема: » & Range(«H40»).Text

      ‘strPhoto = ConvertFileToBase64(«C:Users…..Desktop12.jpg»)
    ‘strPhoto = «C:Users…….Desktop12.jpg»
     message = URLEncode(message)
    Token = «………………..»
    ChatID = «………..»
  sURL = «https://api.telegram.org/bot» & Token & «/sendMessage?chat_id=» & ChatID & «&text=» & message & «&parse_mode=HTML»
    Set oHttp = CreateObject(«Msxml2.XMLHTTP»)
    oHttp.Open «POST», sURL, False
    oHttp.Send
    Set oHttp = Nothing

    End Sub

[/vba]

Что можно предпринять, чтобы не отправлялась строка(строки), где ячейки пустые. То есть, к примеру, диапозон таблицы B38:J45, сообщения отправляются построчно, но начиная со строки 42 данных в строках нет, и сообщения отправляться не должны.

 

Ответить

doober

Дата: Вторник, 25.05.2021, 20:39 |
Сообщение № 14

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

Диапазон в массив, в цикле формируете сообщение.При пустом значении пропускаете формирование сообщения


 

Ответить

kuzmapikar1992

Дата: Воскресенье, 12.02.2023, 22:25 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


doober, Привет! А есть решение по отправке сообщений в телегу через VBAна MacBook? Пересмотрел много форумов, пишут что Microsoft не предусматривал разработку Microsoft XML 6.0 library на Mac. Может есть другой способ отправлять сообщения через Excel в Телеграмм? Заранее спасибо

 

Ответить

doober

Дата: Вторник, 14.02.2023, 12:13 |
Сообщение № 16

Группа: Друзья

Ранг: Ветеран

Сообщений: 913


Репутация:

317

±

Замечаний:
0% ±


Excel 2010

Здравствуйте.надо обращаться к маководам, там совсем другой принцип отправки запросов.


 

Ответить

Давайте рассмотрим вопрос импорта контактов из Excel в Telegram. Telegram — одно из нескольких приложений для обмена мгновенными сообщениями, появившихся на протяжении многих лет. По статистике, его мессенджеры позволяют общаться и звонить в режиме реального времени и имеют почти 200000000 активных пользователей в месяц.

Telegram совместим со всеми платформами, включая смартфоны, планшеты и ноутбуки, что делает его идеальным как для личного, так и для делового использования. Он защищает разговоры между клиентами и сервером с помощью сквозного шифрования, а также обеспечивает отличную безопасность для своих пользователей. Он также позволяет изменять фон разговоров, получать уведомления и создавать ярлыки. Эти невероятные качества — вот что отличает его от других и делает его таким популярным среди пользователей.

С другой стороны, большинство из нас сохраняет нашу контактную информацию в таблицах Excel, поскольку ими легко управлять. Однако мы не всегда можем иметь эти файлы Excel с собой, поэтому все мы хотим иметь возможность добавлять контакты в Telegram из Excel. Однако, поскольку Telegram не предоставляет возможность импортировать контакты из Excel в группу Telegram, это не так просто, как кажется. В результате мы покажем вам, «как импортировать контакты из Excel в Telegram» с помощью простых решений в этой статье.

Одним из наиболее широко используемых приложений для упорядоченного хранения данных является Microsoft Excel. Электронные таблицы Excel позволяют хранить огромные объемы данных и выполнять действия быстрее, чем любое другое приложение. На листе Excel вы можете рисовать диаграммы, вставлять круговые диаграммы и сохранять контакты и другие данные. Все эти данные сохраняются в форматах MS-Excel .xlsx и.xls. Telegram, с другой стороны, принимает только файлы vCard. В результате мы должны научиться конвертировать файлы Excel в формат VCF, чтобы избежать таких ситуаций.

Шаг 1. Преобразуйте электронную таблицу Excel в файл CSV.

Чтобы импортировать контакты в Telegram, данные необходимо сначала преобразовать в формат CSV.

  • Открыть Файл Excel вы хотите преобразовать на свой компьютер.
  • На вершине правый угол окна Excel щелкните значок Офис кнопка.
  • Теперь выберите Сохранить как >> Другие форматы из раскрывающегося меню.
  • Выберите папка или место нахождения где вы хотите сохранить файл, в появившемся диалоговом окне сохранения.
  • Щелкните раскрывающееся меню в Сохранить как выбор типа.
  • Выбирать CSV (с разделителями-запятыми) (* csv) из раскрывающегося меню.
  • Спасти файл нажав на Сохранить вариант и выбирая да.
  • В Файл Excel теперь конвертируется в CSV.

Шаг 2. Контакты из файла CSV можно импортировать

  • Введите контакты в Стартовое окно.
  • Чтобы открыть контактное окно, щелкните значок контактов.
  • Выберите пользователи ты хочешь Импортировать и щелкните Вкладка Импорт.
  • Выбирать CSV (с разделителями-запятыми) (* CSV) file в качестве формата файла, который вы хотите импортировать.
  • Выберите CSV файл вы сделали ранее и нажмите Следующий.
  • В контакты из Excel будет импортировать.

Шаг 3. Экспорт контактов в файл VCF

  • Вернуться к Окно контактов и выберите Экспорт еще раз.
  • Выбирать визитки из выпадающего меню (папка с файлами .vcf).
  • Выбирать Экспорт из раскрывающегося меню.
  • Выбрать место нахождения где вы желаете преобразованные файлы сохранить.
  • Формат вашего файл Excel конвертируется в VCF (Telegram).

Вы можете вручную обработать запрос о том, как импортировать контакты в Telegram таким образом. Вышеупомянутый подход является ручным и бесплатным, но занимает много времени и неудобен; сторонний конвертер Excel в VCF предоставляет простой способ сделать то же самое.

Excel to vCard Converter — одна из таких программ, которая может выполнить эту работу за вас. На следующем шаге мы покажем вам, как импортировать контакты из группы Telegram с помощью конвертера Excel в VCF, который поможет вам ускорить процесс преобразования.

Профессиональный инструмент для импорта контактов из Excel в Telegram

Преобразователь Excel в vCard — это мощная программа, которая может преобразовывать электронную таблицу Excel CSV / XLSX / XLS в vCard и экспортировать всю информацию из таблицы Excel, такую ​​как имя, номер телефона и адрес электронной почты. Он также имеет параметр сопоставления полей: поля vCard могут отображаться на столбцы Excel. Используя инструмент Excel to vCard Converter, импортировать контакты из Excel в группу Telegram очень просто. Просто скачайте программу по ссылке ниже.

Скачать для Windows Купить сейчас

Следуйте простым процедурам, чтобы получить файл Telegram vCard

1. На вашей ПК с ОС Windows, установите Инструмент преобразования Excel в vCard программное обеспечение и запустите его.

Главный экран для импорта контактов из Excel в Telegram

2. Добавить Контактный файл Excel в программное обеспечение, из которого вы хотите импортировать контакты в Telegram, нажав кнопку Просматривать вариант.

Добавьте файл контактов Excel

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

прикрепленный файл Excel и отображение всего Excel для импорта контактов из Excel в Telegram

4. Выберите подходящее поле из Поля vCard раздел для Столбец Excel. Чтобы сопоставить все поля контактов Excel с полями vCard, щелкните Добавлять и повторите процесс.

Выберите поле из раздела vCard Fields для столбца Excel

5. К Добавить контакт в Telegram из Excel, мы должны щелкнуть Следующая кнопка после того, как поля контактов Excel были правильно заполнены нанесенный на карту к данным vCard.

Нажмите кнопку «Далее», чтобы импортировать контакты из Excel в Telegram.

6. Выберите для создания одиночная визитная карточка от vCard версии 2.1 / 3.0 / 4.0 выпадающее меню. Теперь нам нужно выбрать место для сохранения выходной vCard и щелкнуть Перерабатывать кнопка.

Выберите место для сохранения выходного файла vCard и нажмите кнопку «Преобразовать».

После этого вы можете начать процесс импорта контактов из Excel в Telegram, импортировав полученную vCard в свою учетную запись Gmail, связанную с вашим телефоном Windows или Android. Это можно сделать следующим образом:

  • Открытым Google Контакты после входа в свою учетную запись Gmail.
  • Выберите экспортированный файл vCard из меню Импорт. Щелкните значок Открытым кнопка.
  • После этого все vCard контакты будет импортировать в Google Контакты.

Теперь откройте Контакты Telegram и обновите свой список контактов. Все контакты CSV появятся в вашем списке контактов Telegram. Итак, у вас есть простой способ импортировать контакты из Excel в Telegram.

Заключение

Этот пост ответит на все ваши вопросы о том, как импортировать контакты из Excel в Telegram. С другой стороны, ручные методы имеют ряд серьезных недостатков, которые заставляют людей дважды подумать перед их использованием. В результате также рекомендуется решение для импорта контактов из Excel в Telegram, которое является как автоматическим, так и безошибочным.

На чтение 4 мин Просмотров 25.1к. Обновлено 28.10.2020

Телеграмм – это популярный мессенджер для обмена текстовыми и голосовыми сообщениями, а также медиафайлами в виде картинок, видео, аудио и документов, снимков местоположения.

Поэтому сегодня мы поговорим о том, как отправить файл в Телеграм. Рассмотрим особенности процедуры для разных операционных систем, подводные камни и способы достижения результата.

Содержание

  1. Какой максимальный размер отправляемых файлов
  2. Отправка файлов через мобильное приложение
  3. Используем облачное хранилище
  4. Отправка медиафайлов в компьютерной версии
  5. Заключение

Какой максимальный размер отправляемых файлов

Для многих пользователей, после использования других мессенджеров, стало откровением возможность отправки в Телеграмме файлов размером до 1.5 ГБ.

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

Какой максимальный размер отправляемых файлов в Телеграме

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

Отправка файлов через мобильное приложение

В процедуре нет ничего сложного, да и особых различий между операционными системами iOS и Android OS нет. Поэтому рассмотрим единую инструкцию:

  1. Запускаем Телеграм и пролистываем перечень диалогов до нахождения нужного.
  2. Активируем иконку в виде скрепки в левом нижнем углу пользовательского окна.
  3. В выпадающем списке выбираем категорию передаваемого файла.Как отправить файл в Телеграме
  4. Выбираем место, откуда отправлять файл.
  5. Дальше, на примере внешнего хранилища, выбираем папку, где хранится файл.
  6. Отмечаем нужный файл и нажимаем синюю стрелку в нижнем левом углу. Можно добавить сообщение к файлу. Отправка файла в Телеграме

В зависимости от веса объекта и качества интернет-соединения может понадобится время на загрузку.

Используем облачное хранилище

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

  1. Разблокируем смартфон и открываем клиент облака на рабочем столе или из меню приложений.
  2. Находим в облачном хранилище файл, который нужно отправить в Телеграм.Отправка файла из облака в Телеграм
  3. Нажимаем на три точки, чтобы открыть контекстное меню. Здесь выбираем «Отправить копию».
  4. Из карусели приложений выбираем Телеграм.
  5. Выбираем диалог или чат, куда нужно отправить файл.Как отправить файл в Телеграме из облака
  6. Подтверждаем действие, тапом по кнопке «Отправить».Как отправить файлы в телеграме из облака

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

Данная инструкция подойдет, если в используете хранилище Гугл Диск. Если вы используете другое облако — шаги, действия и названия кнопок интерфейса будут отличаться. 

Компьютерная версия Telegram, в отличии от большинства аналогов, полностью независима. Это значит, что вам не нужно синхронизировать ПК и смартфон для получения доступа к учетной записи пользователя.

Скачать ПК версию телеги можно на официальном сайте. Сама процедура установки не отличается от простых приложений.

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

Чтобы отправить медиафайлы пользователю:

  1. Запускаем Телеграмма на рабочем столе.
  2. Пролистываем список диалогов в левой части пользовательского интерфейса.
  3. Переходим в окно чата, активируем иконку в виде скрепки в левом нижнем углу программного интерфейса.
  4. Автоматически открывается Проводник, прописываем путь до сохраненного файла.
  5. Подтверждаем серьезность намерений и ждем завершения загрузки.Отправка файла в Телеграме на ПК

Альтернативный вариант — это отправка собеседнику ссылки на файл из облачного хранилища или почтового сервиса.

Заключение

Отправка медиафайлов в Телеграмме – это удобный вариант обмена пользовательской информацией с собеседниками, друзьями, коллегами по работе.

Сама процедура довольно проста в реализации, и практически идентична для всех операционных систем. Большинство пользователей радуется за возможность переслать человеку файл любого расширения весом до 1.5 ГБ, что на порядок больше, чем предлагают разработчики других мессенджеров.

Время на прочтение
9 мин

Количество просмотров 49K

«История ничему не учит, а только наказывает за незнание уроков.»
(с) В.О. Ключевский

Друг предложил мне поработать над проектом для нашей кафедры. ТЗ пока не сформулировано, но точно известно, что это будет бот в телеге. Я хоть и питонист, но с ботами дел никогда не имел, поэтому пишу эту статью, как заметку, для себя и молодых перспективных ребят, чтоб у них было от чего оттолкнуться. Постараюсь писать максимально понятным и простым языком. Профессионалам тут особо делать не чего, хотя, может и придёт какая-нибудь идея.

Краткое описание бота

Наш бот будет создан на тематику Белого движения в гражданской войне в России (1917-1922) /сегодня разговор не о политике. Это просто пример/

  • По команде /start бот будет приветствие и посылать стикер;

  • После приветствия появится клавиатура под строкой набора сообщений с двумя кнопками «Вывести случайную цитату белогвардейца» и «Литература»

  • Нажатие на первую кнопку выведет рандомную цитату из excel файла (такое извращение нужно для подготовки к будущему проекту)

  • Нажатие на кнопку «Литература» выдаст инлайновую клавиатуру (далее будет прояснение, для тех кто не понял что это) с названиями произведений белогвардейских авторов или о белогвардейцах.После нажатия клавиатура пропадёт (просто этим навыком, думаю, необходимо обладать), начнётся загрузка pdf файла и появится оповещение «Приятного чтения!»

Вот такой простенький бот у нас по выйдет.

Начало. Создание бота и добавление библиотек.

Для начала добавим библиотеку pyTelegramBotAPI обычным пипом в cmd.

pip install pyTelegramBotAPI

А также загрузим простенькую библиотеку для работы с Excel. (ЧИТАЕТ ТОЛЬКО .xls!!!)

pip install xlrd

Время импортировать все необходимые библиотеки.

import telebot #импорт pyTelegramBotAPI 
from telebot import types #также достанем типы
import random #рандом обязательно
import xlrd #библиотка чтения экселевских файлов

Далее нужно создать самого бота в телеграме. Для этого пройдёмся по следующим шагам:

  1. Найти в поиске телеграма @BotFather

  2. Написать ему команду /newbot

  3. Первым сообщение отправить имя бота, а вторым его юзернейм (который пишется с @). Он должен быть уникальный и оканчиваться на Bot или _bot

После этих шагов батя пришлёт нам ссылку на нашёго бота и его API.

Нужно скопировать всю строку, которая на скрине закрыта красным прямоугольником

Нужно скопировать всю строку, которая на скрине закрыта красным прямоугольником

Если коротко, то API — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это».
(Более подробная инфа тут API)

Кодим

Раз библиотеки уже добавили, значит создаём переменную, определяющую бота с помощью API.

bot = telebot.TeleBot("TOKEN")

В начале, при написании команды /start, бот у нас выдаст приветствие. Соответственно, вставляем декоратор обработчика сообщений.

@bot.message_handler(commands=['start'])

Если кто не знает что такое декораторы, то есть достаточно подробная статья, рекомендую ознакомиться.

Коротко: Декораторы — это, по сути, просто своеобразные «обёртки», которые дают нам возможность делать что-либо до и после того, что сделает декорируемая функция, не изменяя её.

Теперь наш бот понимает команду /start, но ещё ничего не делает. Создаём функцию приветственного сообщения.

@bot.message_handler(commands=['start'])
def send_welcome(message):
	stic = open('stic/welcome.webp', 'rb') #чтение файла в двоичном формате

	# клавиатура
	markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
	but1 = types.KeyboardButton("Вывести случайную цитату белогвардейца")
	but2 = types.KeyboardButton("Литература")
	markup.add(but1, but2)

	bot.reply_to(message, "Здравствуй, {0.first_name}nСмотрю, ты за Единую, Великую и Недилимую".format(message.from_user)
  ,parse_mode='html',reply_markup=markup)
	bot.send_sticker(message.chat.id,stic)

Пробежимся по коду

Строкой stic = open('stic/welcome.webp', 'rb') мы записываем в переменную путь к нашему стикеру в формате .webp (скачать его можно из сообщений телеграма правой кнопкой мыши, «сохранить как»)

Ниже происходит создание клавиатуры
markup = types.ReplyKeyboardMarkup(resize_keyboard=True) ,а точнее запись в переменную подстрочной клавиатуры. Параметр resize_keyboard=True подгоняет кнопки по высоте до возможного минимума. Также создаём две кнопочки и добавляем в клавиатуру:

but1 = types.KeyboardButton("Вывести случайную цитату белогвардейца")
but2 = types.KeyboardButton("Литература")
markup.add(but1, but2)

Клавиатура готова, но пока не используется. Пока оставим её и переключимся на сообщение. Одной строкой мы указываем боту отправить сообщение с текстом, именем отправителя ({0.first_name} , а вытягивает его он из.format(message.from_user) мы можем дописать .format(message.from_user, bot.get_me()) и вызвать имя бота, добавив в текст {1. first_name}), правилом оформления parse_mode='html' (также можно выбрать 'markdown') и определением клавиатуры, которую создали выше.

bot.reply_to(message, "Здравствуй, {0.first_name}nСмотрю, ты за Единую, Великую и Недилимую".format(message.from_user)
,parse_mode='html',reply_markup=markup)

Последней строкой отправляем стикер bot.send_sticker(message.chat.id,stic)

Приветственное сообщение и клавиатура

Приветственное сообщение и клавиатура

Время дать возможность боту коммуницировать

@bot.message_handler(func=lambda message: True)
def menu(message):
	if message.chat.type == 'private':
		if message.text == "Вывести случайную цитату белогвардейца":

			#достаём циататы из ворда
			rb = xlrd.open_workbook('citat/citat.xls', formatting_info=True)
			sheet = rb.sheet_by_index(0)
			for rownum in range(sheet.nrows):
				rand = int(random.randint(0,rownum))
				row = sheet.row_values(rand)
			bot.send_message(message.chat.id, row)


		elif message.text == "Литература":

			#инлайновая клавиатура
			inMurkup = types.InlineKeyboardMarkup(row_width=1)
			but1 = types.InlineKeyboardButton("И.Ф. Плотников - Александр Васильевич Колчак. Исследователь, адмирал, Верховный правитель России",callback_data='book1')
			but2 = types.InlineKeyboardButton("А.В. Туркул - Дроздовцы в огне", callback_data='book2')
			but3 = types.InlineKeyboardButton("П.Н. Врангель - Записки", callback_data='book3')
			but4 = types.InlineKeyboardButton("М.Г. Дроздовский - Дневник", callback_data='book4')
			inMurkup.add(but1, but2, but3, but4)

			bot.send_message(message.chat.id, "Книги на любой вкус", reply_markup=inMurkup)
		else:
			bot.send_message(message.chat.id, "Я не знаю что и ответить")

Букв много, но сейчас всё раскидаем. Берём знакомый декоратор и делаем проверку лямбдой сообщение. Если не в курсе что такое лямбда-функция, то сюда. Бот у нас работает через личные сообщения, поэтому пропишем if message.chat.type == 'private':, если требуется, то можете указать условия для “group”, “supergroup” или “channel” , но нам это не нужно.

Далее идёт строка с текстом. ВАЖНО текст должен совпадать с названием кнопки клавиатуры, которую указывали выше.

Создаём экселевский файлик, в первую колонку вписываем цитаты, сохраняем в формате .xls в папку, как делали со стикером.

Со спокойной душой вызываем на файл на чтение
rb = xlrd.open_workbook('citat/citat.xls', formatting_info=True), указываем лист с которого считываем инфу sheet = rb.sheet_by_index(0) индексы как у массива (первый элемент нулевой).

Далее определяем диапазон заполненных строк в листе и записываем их количество в rownum. Используем эту переменную как верхнюю границу до которой может сгенерироваться случайное число rand = int(random.randint(0,rownum)). Получив ячейку, вытаскиваем из неё значение row = sheet.row_values(rand) отправляем его bot.send_message(message.chat.id, row).

Вышло как-то так

Вышло как-то так

Для литературы будем использовать инлайновую клавиатуру.

elif message.text == "Литература":

	#инлайновая клавиатура
	inMurkup = types.InlineKeyboardMarkup(row_width=1)
	but1 = types.InlineKeyboardButton("И.Ф. Плотников - Александр Васильевич Колчак. Исследователь, адмирал, Верховный правитель России", callback_data='book1')
	but2 = types.InlineKeyboardButton("А.В. Туркул - Дроздовцы в огне", callback_data='book2')
	but3 = types.InlineKeyboardButton("П.Н. Врангель - Записки", callback_data='book3')
	but4 = types.InlineKeyboardButton("М.Г. Дроздовский - Дневник", callback_data='book4')
	inMurkup.add(but1, but2, but3, but4)

	bot.send_message(message.chat.id, "Книги на любой вкус", reply_markup=inMurkup)

Определяем клавиатуру inMurkup = types.InlineKeyboardMarkup(row_width=1) параметр row_width=1 говорит о том, что на одной строке будет одна кнопка. Принцип кнопок создания такой же как и у обычной клавиатуры, но появляется параметр callback_data значения которого примет бот после нажатия на кнопку и поймёт что нужно сделать (далле это всё опишем).

Последней строкой отправляем сообщение и цепляем к нему инлайновую клавиатуру.

Работа с callback_data

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
	try:
		if call.message:
			if call.data == 'book1':
				doc = open('boo/Plotnikov_Ivan-Aleksandr_Vasilevich_Kolchak_Issledovatel_admiral_Verhovnyi_pravitel_Rossii.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book2':
				doc = open('boo/Turkul_-_Drozdovtsy_v_ogne.pdf','rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book3':
				doc = open('boo/Vrangel_P_Zapiski_a4.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book4':
				doc = open('boo/Drozdovsky_dnevnik_1963__ocr.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			#удаляем инлайновую клаву
			bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Книги на любой вкус",
				reply_markup=None)
			#Создаём уведомление
			bot.answer_callback_query(callback_query_id=call.id, show_alert=False,
				text='Приятного чтения!')
	except Exception as e:
		print(repr(e))

Первым делом вызываем декоратор обработки колбэка и подтверждаем, что он был получен @bot.callback_query_handler(func=lambda call: True). Далее создаём функцию с конструкцией try-except (Что это? Чекай). Код хоть и приличный по объёму, но весь однотипный. Через if мы понимает какая «дата» пришла от кнопки, например
if call.data == 'book1': отвечает за первую кнопку с книгой про Колчака. Соответственно, командой

doc = open('boo/Plotnikov_Ivan-Aleksandr_Vasilevich_Kolchak_Issledovatel_admiral_Verhovnyi_pravitel_Rossii.pdf', 'rb')

мы создаём переменную doc в которую «суём» pdf файл, который сохранили в папку «boo» заранее.

Теперь строкой bot.send_document(call.message.chat.id, doc) отправляем файл в чат.

После леса из наших elif удалим инлайновую клавиатуру, дабы не мешалась. Действие необязательно, но мы же с вами тренируемся, поэтому пусть код будет здесь.

Вызываем функцию bot.edit_message_text По тексту определяется сообщение и
в параметр, который мы использовали для добавления клавиатуры reply_markup вносим значение None.

Уведомление призывается заклинанием

Параметр show_alert отвечает за вид оповещения (False простое временное уведомление, True уведомление с кнопкой «Ок»)

1 — False, 2 — True

1 — False, 2 — True

Завершаем эту ступень кода конструкцией проверки исключений (ошибок).

except Exception as e:
	print(repr(e))

Финальный аккорд:

bot.polling(none_stop=True)

Именно этой командой и закончим наш код. Теперь бот постоянно проверяет не написал ли ему кто.

В итоге получился такой код:

import telebot
from telebot import types
import random
import xlrd

bot = telebot.TeleBot("TOKEN")

@bot.message_handler(commands=['start'])
def send_welcome(message):
	stic = open('stic/welcome.webp', 'rb')

	# клавиатура
	markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
	but1 = types.KeyboardButton("Вывести случайную цитату белогвардейца")
	but2 = types.KeyboardButton("Литература")
	markup.add(but1, but2)

	bot.reply_to(message, "Здравствуй, {0.first_name}nСмотрю, ты за Единую, Великую и Недилимую".format(message.from_user),parse_mode='html',reply_markup=markup)
	bot.send_sticker(message.chat.id,stic)



@bot.message_handler(func=lambda message: True)
def menu(message):
	if message.chat.type == 'private':
		if message.text == "Вывести случайную цитату белогвардейца":

			#достаём циататы из ворда
			rb = xlrd.open_workbook('citat/citat.xls', formatting_info=True)
			sheet = rb.sheet_by_index(0)
			for rownum in range(sheet.nrows):
				rand = int(random.randint(0,rownum))
				row = sheet.row_values(rand)
			bot.send_message(message.chat.id, row)


		elif message.text == "Литература":

			#инлайновая клавиатура
			inMurkup = types.InlineKeyboardMarkup(row_width=1)
			but1 = types.InlineKeyboardButton("И.Ф. Плотников - Александр Васильевич Колчак. Исследователь, адмирал, Верховный правитель России", callback_data='book1')
			but2 = types.InlineKeyboardButton("А.В. Туркул - Дроздовцы в огне", callback_data='book2')
			but3 = types.InlineKeyboardButton("П.Н. Врангель - Записки", callback_data='book3')
			but4 = types.InlineKeyboardButton("М.Г. Дроздовский - Дневник", callback_data='book4')
			inMurkup.add(but1, but2, but3, but4)

			bot.send_message(message.chat.id, "Книги на любой вкус", reply_markup=inMurkup)
		else:
			bot.send_message(message.chat.id, "Я не знаю что и ответить")

#обработка callback
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
	try:
		if call.message:
			if call.data == 'book1':
				doc = open('boo/Plotnikov_Ivan-Aleksandr_Vasilevich_Kolchak_Issledovatel_admiral_Verhovnyi_pravitel_Rossii.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book2':
				doc = open('boo/Turkul_-_Drozdovtsy_v_ogne.pdf','rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book3':
				doc = open('boo/Vrangel_P_Zapiski_a4.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			elif call.data == 'book4':
				doc = open('boo/Drozdovsky_dnevnik_1963__ocr.pdf', 'rb')
				bot.send_document(call.message.chat.id, doc)
			#удаляем инлайновую клаву
			bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Книги на любой вкус",
				reply_markup=None)
			#Создаём уведомление
			bot.answer_callback_query(callback_query_id=call.id, show_alert=False,
				text='Приятного чтения!')
	except Exception as e:
		print(repr(e))

bot.polling(none_stop=True)

Пара слов от автора

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

Больше функций, параметров и всего прочего находится в документации. Справочник на русском. Библиотеки pyTelegramBotAPI и xlrd.

Огромное спасибо за прочтение статьи! Надеюсь она оказалась полезной. А если понравилась, то поднимай статью в рейтинге и оставляй комменты)

Автор обитает тут: ВК, Инстаграм

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как отправить таблицу excel в ватсап с телефона
  • Как отобразить числа с символом денежной единицы процента excel ответ
  • Как отправить таблицу excel в ватсап с компьютера
  • Как отобразить циклические ссылки в excel
  • Как отправить ссылку на таблицу excel по электронной почте

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии