Сервис для преобразования файла Тинькофф, или моя любовь к phpExcel

Публикация № 543838

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

phpexcel Тинькофф контроль бюджета

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

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

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

table1

 Нужно сгруппировать эту таблицу по датам, просуммировать по отрицательным значениям расходов, отсортировать в обратном порядке по датам и сконструировать общее описание для каждого дня (при этом некоторые расходы, такие как "снятие наличных" нужно пропустить).

Конечно, это можно сделать на vba в самом экселе за 10 минут (или сводными таблицами), но меня интересовала возможность php в данном вопросе, и я решил потратить денёк на изучение нового (для меня)

И вот что получилось:

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

p.s. в файле никаких секретных данных не содержится, можете сами в этом убедиться, открыв его.

1. Выгружаем файл из интернет банка

2. Перетаскиваем файл на надпись "брось сюда файл" (или нажимаем кнопку "или выбери" и выбираем файл на диске)

3.Если всё получилось, то появится гиперссылка "обработанный файл", нажимаем.  (если ничего не получилось, то пишите на  info@gran-it.net с темой tcstransform)

В обработанном файле ячейки будут сгруппированы примерно так

table2

4. Вставляем нужные ячейки в ваш файл расходов.

Теперь немного о реализации

Для  обработки (чтения и записи) файлов excel я использовал замечательную библиотеку phpExcel

Вот немножго моего хард кода для чтения и записи:
function readExelFile($filepath){
require_once 'Classes/PHPExcel.php'; //подключаем наш фреймворк
date_default_timezone_set('UTC');
$ar=array(); // инициализируем массив
$inputFileType = PHPExcel_IOFactory::identify($filepath);  // узнаем тип файла, excel может хранить файлы в разных форматах, xls, xlsx и другие
$objReader = PHPExcel_IOFactory::createReader($inputFileType); // создаем объект для чтения файла
$objPHPExcel = $objReader->load($filepath); // загружаем данные файла в объект
$ar = $objPHPExcel->getActiveSheet()->toArray(); // выгружаем данные из объекта в массив
return $ar; //возвращаем массив
} 
 
function writeExelFile($filename,$ar){
require_once 'Classes/PHPExcel.php';
date_default_timezone_set('UTC');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$active_sheet = $objPHPExcel->getActiveSheet();
$timestart=0;
$strk=2;
$strToline="";
$sumToline="=";
$active_sheet->getColumnDimension('H')->setWidth(80);
$active_sheet->setCellValue('G1','Дата');
$active_sheet->setCellValue('H1','Описание');
$active_sheet->setCellValue('I1','Траты');
foreach($ar as $ar_colls){
if ((!($ar_colls[8]=='Переводы/иб'))&&(!($ar_colls[2]=='FAILED'))&&(!($ar_colls[8]=='Наличные'))&&(!($ar_colls[4]>0))){
$str = $ar_colls[0];
if ($timestart==0){
$timestart=strtotime($str);
$dstart=date('d.m.Y',$timestart);
                  }
$curdata=strtotime($str);
$curd=date('d.m.Y',$curdata);
$sum=-1*$ar_colls[4];
if ($curd==$dstart){
if($strToline==''){$strToline=$ar_colls[8];} else{
$strToline=$strToline.'+'.$ar_colls[8];
}
$sumToline=$sumToline.'+'.$sum;
}  else {
	$active_sheet->setCellValue('G'.$strk,$dstart);
	$active_sheet->setCellValue('H'.$strk,$strToline);
	$active_sheet->setCellValue('I'.$strk,$sumToline);
	$sumToline="=".$sum;
	$strToline=$ar_colls[8];
	$strk++;
        }	
$dstart=$curd;                                                                                                                         }
	                }	
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('convert/'.$filename);
exit();
} 

Загрузка файла на сервер и Drag&Drop реализованы через плагин jQuery File Upload, индикация загрузки через jQuery Knob

Вывод: С помощью phpExcel и минимальных знаний php, можно организовать любую обработку файлов excel причём даже еслу у вас нет ни Excel ни Винды.

Ещё раз, ссылка на сервис

Приветствуются комментарии.

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Ibrogim 1130 19.08.16 11:47 Сейчас в теме
2. vano-ekt 532 19.08.16 12:19 Сейчас в теме
Опалихинская ... с Заречного значит ... :-D
3. vano-ekt 532 19.08.16 12:25 Сейчас в теме
зы, а заправляемся в Башнефти на Бебеля...
"Деанонимизация программиста возможна не только через исходный код, но и через скомпилированный бинарный файл" (с) Хабр
4. Ibrogim 1130 19.08.16 12:44 Сейчас в теме
(3) vano-ekt,
а заправляемся в Башнефти на Бебеля
Где же ещё, тамже рубль с литра скидка
Оставьте свое сообщение

См. также

Получение html-кода страницы. JS из 1С

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования WEB

Получение исходника страницы, выполнение произвольного js-кода. Теперь с WebKit от 1С.

18.02.2020    1453    Yashazz    1       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Проброс IP-адреса клиента в http-сервис 1С. Реализация для IIS

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) WEB Администрирование веб-серверов IIS

Настраиваем веб-сервер IIS для передачи в 1С IP-адреса клиента, вызвавшего http-сервис. Разбираемся с этим же вопросом при использовании фронтэнд вебсервера на примере nginx.

01.12.2019    3351    -vito-    5       

Обертка функций Excel на русском. Ускорение процесса разработки.

Статья Программист Нет файла v8 Windows Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Устали переключаться с русского на английский и обратно при работе с таблицами Excel из 1С? Сборка наиболее необходимых функций и методов работы с Excel, обернутых в функции 1С на русском языке.

24.10.2019    4284    DmitryKotov    6       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Swagger для 1С.

Статья Системный администратор Программист Нет файла Бесплатно (free) OneScript WEB

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    6736    botokash    27       

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.)

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    6673    uno-c    25       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Самый примитивный HTTP-сервис в мире

Статья Программист Нет файла v8 Бесплатно (free) WEB

Пошаговый пример создания простейшего HTTP-сервиса, который генерирует HTML-страницу для поиска товара, а также реализует асинхронное получение данных из базы.

12.09.2019    12096    YPermitin    26       

Простая работа с dbf и перевод в excel

Статья Программист Нет файла Россия Windows Бесплатно (free) Загрузка и выгрузка в Excel Файловые протоколы обмена, FTP

Хочу рассказать, как просто создать и отредактировать dbf файл, переведя его в excel.

23.08.2019    1877    WWWWW    3       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    6820    Fragster    9       

Совсем простой обмен HTTP, 2 функции

Статья Программист Нет файла v8 Бесплатно (free) WEB

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    5958    Yashazz    15       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    5356    Sedaiko    1       

1Script.Web. Интернет-приложения на языке 1С

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript Инструментарий разработчика

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    15579    Evil Beaver    32       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Преобразование EXCEL в таблицу значений без COM и других извращений

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Получение таблицы значений из excel в 1С v8, без COM, внешних источников данных и т.д. EXCELВТаблицуЗначений() - За 10 строчек кода! Реализация протестирована на 1С 8.3.12.1714 (x64).

18.04.2019    18445    9    Eret1k    43       

Отправка файлов через SOAP. SOAP with attachments, MTOM

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

В продолжение «своеобразной» поддержки 1С протокола SOAP, описанной в https://infostart.ru/public/965259/, опишу еще одну особенность. 1С не поддерживает возможность отправки файлов-вложений. Для решения этой проблемы пришлось самостоятельно писать формирование пакетов SOAP и разбор ответов сервера.

18.04.2019    5308    mysm    2       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

HTML-клиент у конфигурации 1С

Статья Программист Нет файла v8 Бесплатно (free) WEB

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    13882    Smaylukk    119       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Обновляем картинки товаров по штрихкоду с помощью мобильного приложения "Штрихконь" (Пошаговое руководство)

Статья no Нет файла Бесплатно (free) Внешние источники данных WEB

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

10.04.2019    3732    inord777    2       

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM

Статья Программист Нет файла v8 Бесплатно (free) WEB

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    11085    starik-2005    33       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Решение проблемы связи с сайтом, использующим протокол TLS 1.2

Статья Системный администратор Программист Нет файла Windows Бесплатно (free) WEB

Последнее время все чаще ко мне обращаются клиенты, у которых возникли проблемы при обмене с сайтом. Текст ошибки, как правило, имеет вид: - Ошибка инициализации SSL-соединения - Соединение с сервером было неожиданно прервано

19.03.2019    6433    zsrg    0       

Логируй больше! 1С + UPD + GELF + Graylog

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Администрирование данных 1С WEB Разработка

Наличие производительной платформы управления логами - это жизненно важный элемент в ландшафте систем с высокой активностью. Рассмотрим один из подходов логирования активности систем на платформе 1С в Graylog.

26.02.2019    8105    Lars Ulrich    15       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Копирование числовых ячеек из 1С в Excel

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Администрирование данных 1С

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

15.01.2019    15740    itriot11    21       

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    15936    starik-2005    25       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019    9186    rasdag    14       

1С + asterisk (автоматический обзвон) часть 1

Статья Системный администратор Программист Нет файла Россия Бесплатно (free) WEB Практика программирования Телефония, SIP

Пример реализации автообзвона (с обработкой ответа на отвечающей стороне) с использованием ami asterisk. Данная статья может быть полезна программистам, интеграторам, администраторам. Версия и релиз технологической платформы не имеет значения.

29.11.2018    9197    dmarenin    9       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Статья детально рассказывает обо всех аспектах настройки телеграм бота, работающего через сервер-маршрутизатор посредством обратных вызовов. Приведены примеры работы отправки/исправления сообщений, отправки файлов, работы с внутренними и встроенными запросами. Создание клавиатуры. Авторизация пользователей через gmail.

07.11.2018    22834    🅵🅾️🆇    44       

Excel: создание в формате xlsx без COM технологии

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.

10.09.2018    9236    user1045404    16