Метка «Excel»

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

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

Мои задачи код решил. Пусть он поможет и другим.

Код со вложенными циклами и при должной оптимизации можно получить более шустрый и универсальный код. Готовый файл со всеми коменатми будет в аттаче.

Поехали.
Читать полностью »

Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на VBA Excel.
На момент принятия решения о создании гибкого приложения, было порядка 7 макросов, работающих по большим объемам (несколько файлов от 20 тыс. строк до 370 тыс. строк), весящих от 50 килобайт до 12 мегабайт, каждый из которых был написан в соответствии со знаниями существующими на момент написания. Каждый макрос изменялся, дописывался, исправлялся в части ошибок, а учитывая, что этими макросами пользовались более 60 человек, не все из которых отслеживали изменения, постоянно дергали меня показывая очередную ошибку, которую я уже исправил и выслал на всех. Объяснять толпе народу как правильно пользоваться макросами, я бросил сразу, так как всегда выпадет из звена 2-3 человека, которые возьмут уже отформатированную таблицу в работу с макросами и доводы, мол я не могу предугадать кто и как изменяет таблицы, эти люди не понимают.

Необходимо было сделать один код, а не 60 копий каждого изменения, высланного по почте.
Читать полностью »

(Новая запись от Марины Ильиных virtualtomato, старшего менеджера проектов в All Correct Localization)

Часть 1

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

image
Иллюстрация с сайта Dageron.com
Читать полностью »

Шар на ладониЗадача про стоэтажный дом и два стеклянных шара давно будоражит интернет-сообщество (Хабрахабр, ЖЖ, форумы). Пытливые умы непременно задаются вопросом: что делать в общем случае, когда у нас n этажей и k шаров?

Скажем, сколько бросков (хотя бы примерно), потребуется в случае n = 240, k = 10?

Объединив найденные на просторах сети сведения и собственные наработки, хочу представить вам пост о ключевых идеях решения этой задачи, а также об основных результатах и интересных наблюдениях, полученных в ходе исследования.
Читать полностью »

Работа с таблицами в MultiCAD.NET. Часть 3. Внешние файлы таблиц и обмен данными с Microsoft Excel

В предыдущих статьях о таблицах в MultiCAD.NET речь шла о программном создании и форматировании таблиц в чертеже, использовании различных типов данных в качестве содержимого, а также о применении шаблонов таблиц. В этой статье мы продолжим рассказ об использовании шаблонов и более подробно рассмотрим API, позволяющий сохранить таблицу во внешний файл в качестве шаблона и загрузить его в чертеж для формирования типовых таблиц. Во второй половине статьи будет рассмотрен процесс обмена данными с Microsoft Excel.Читать полностью »

Для загрузки информации о торговых точках в наш логистический SaaS-сервис «Муравьиная логистика» из Excel я решил использовать web-браузер. Обычно проще загрузить файл на сервер и с помощью любой библиотеки залить в БД. Но мне было интересно загрузить его построчно для контроля целостности каждой строки на клиенте, ну и, конечно, опробовать так всеми рекламируемое HTML5 FileAPI и Drag and Drop.
Читать полностью »

Задачки с Project Euler хороши тем, что позволяют развлечься и потренировать мозг на разных уровнях сложности для одной и той же задачи. Самый простенький подход — brute force. Первые два десятка задач на 99% решаются именно таким подходом. После отправки правильного ответа на задачу открывается ветка форума по ней. Любители из десятков стран соревнуются, кто процитирует решение поизощреннее. Более продвинутые используют встроенные возможности языков, на которых пишут решение, но суть одна и та же — перебор или явный с кучей вложенных циклов или неявный через вызов специальных функций. Особенно красиво это выглядит в языках Python или Ruby ( часто в одну-две строчки), помногословнее в Java и C++. Чем дальше, тем натужнее выглядят «силовые» решения, с использованием классов вроде BigInteger. С увеличением номера задачи грубую силу удается успешно применитьвсе реже и все сложнее. Появляется много задач на чистую математику, где нужно решить задачу на бумаге, а потом закодировать что-то совсем несложное. Иногда писать можно обойтись без написания кода вовсе, таких задач много — например, на применение комбинаторики.

Но иногда приятнее найти совсем нестандартное решение.
Читать полностью »

programmer or scientist

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

Админка руками менеджера или как руководитель помог программисту

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

Вот пример того, что должно загружаться в сервис
event_type_groups.config

'default'=>array(
'name' => 'default',
'title' => 'Мои шаблоны'
),
'celebration'=>array(
'name' => 'celebration',
'title' => 'Торжество'
),
'business'=>array(
'name' => 'business',
'title' => 'Бизнес-мероприятие'
),
'tourism'=>array(
'name' => 'tourism',
'title' => 'Пикник, поход'
),

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

Читать полностью »

Изменение калькуляторов расчета на сайте без программистов
Привет!

В данной статье расскажем, какое применение мы нашли для технологии Excel Services, входящей в состав сервера SharePoint, для построения калькуляторов банковских продуктов.
В 2011 году мы разрабатывали сайт банка ВТБ24, одной из важных задач, которую должен решить новый сайт, было предоставление удобного инструмента для создания и обслуживания калькуляторов и заявок, связанных с продуктами банка. Например, для продукта кредитования «АвтоСтандарт» банк предоставляет пользователю сайта возможность самостоятельно рассчитать с помощью калькулятора, сумму выплат, и в случае, если все устраивает, можно отправить заявку.
Читать полностью »

Обычно для программного формирования сложных отчётов в xls предлагается использовать «вручную» сформированный документ — шаблон, в нужных местах которого вместо реальных данных подставлены некоторые «теги» н.п. ${userName}, ${userAge}, и в процессе заполнения шаблона находить теги в тексте документа и заменять их соответствующими значениями.

Но как быть, если в итоговом документе должны отсутствовать некоторые страницы из шаблона, и наоборот, другие страницы могут быть несколько раз «клонированы» и заполнены разными данными? И как избавиться от нудного заполнения маппинга тег->значение в коде?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js