Ruby: работа с Excel (xls) и CSV с гемами spreadsheet, axlsx

В целом про csv/excel тут.

Для работы с CSV достаточно системной библиотеки CSV.

 

CSV

Работа с CSV

# открываем файл, каждая строка является массивом, каждая ячейкам – элементом массива

csv.foreach("csv.csv") do |line|
puts line.inspect
end

# если нам нужно сохранить весь файл в двумерный массив (array, в нем строки в виде отдельных array) – просто вызываем read.

Читать дальше

phantomjs – парсинг web с поддержкой js

    • (macbook, phamtomjs) На macook и ios можно запускать shortcuts, там писать код (ниже пример с выгрузкой страницы html с запуском js!) и автоматизировать запуск (на ios через сами shortcuts, на macbook через cron/shorty)
    crontsb -l
    */2 * * * * /Users/rpv/lesta_shortcut.sh


Читать дальше

Несколько полезных JavaScript

confirm при нажатии на кнопку

Например кнопку “удалить” в файловой шаре.

echo "<td><button type=submit name=file_dlt value=\"$file\" onclick=\"return confirm('Вы уверены?')\">Удалить</button></td>";
Добавление строки в таблицу по OnClick

Стырено отсюда. Причем штука настолько крутая, что копирует весь html от строки родителя – значения полей (в моем кейсе хорошо), checkbox, связанные.

Читать дальше

PHP библиотека PHPExcel для работы с Excel

Для работы с Excel использовал библиотеку PHPExcel. Установка простейшая – кладем папку Classes в нужную папку на сервере, указываем корректные пути в include/require.

Примеры кода по чтению/генерации файлов Excel можно посмотреть на github странице библиотеки.

 

Красивости

и этим не ограничивается функционал, это лишь то, что использовал:

  • mergeCells(“cell_range”) – Объединение указанных ячеек в одну.


Читать дальше

Excel: использование функции ВПР

Общее

В Excel есть полезная функция – ВПР. Позволяет на основе списка неких идентификаторов извлечь из таблицы значения атрибутов этих идентификаторов.

Сравнение ВПР с другими вариантами решения задачи:

  • ВПР – подходит для небольших объемов данных. По опыту попытка получения данных по 100к значениям в таблице из 300к строк требовала неимоверное время для расчета и в результате пришлось решать задачу по-другому. 


Читать дальше

Ruby: парсинг и модификация WEB страниц с Nokogiri и Mechanize

Парсить страницу через curl + regexp можно, но только в простых сценариях. В противном случае проще и надежнее использовать библиотеки.

Mechanize и Nokogiri похожи. Насколько я понимаю Mechanize использует Nokogiri для своей работы. Оба Gem могут использовать html объекты для парсинга/манипуляции (nokogiri так же может работать с xml).

Читать дальше

Microsoft Word разное (стили и глюки, память на диске и temp)

Повторное использование одной и той же сноски
Повторное использование одной и той же сноски достигается за счет перекрестной ссылки.
word вписать таблицу в страницу по ширине

Очень часто возникает задача вставить таблицу в документ Word из внешнего источника (WEB/Excel). При такой вставке границы таблицы могут заходить за пределы листка.

Читать дальше

HP LoadRunner, IBM RPT

HP LoadRunner – утилита для нагрузочного (и не только, по аналогии с JMeter) тестрования. С помощью нее можно создавать разные запросы на сайт/приложение/БД и анализировать отдачу. Можно писать скрипты. Бесплатная лицензия на 50 пользователей.

Как понимаю прямой конкурент:

IBM RPT – Rational Performance Tester.

Читать дальше

PHP работа с MySQL используя PDO

В коде страницы выглядит так. Используются функция в файле mysql_con.php и класс с несколькими функциями в файле mysql_oper.php.
require __DIR__ . 'mysql_con.php';
$db = DB();
require __DIR__ . 'mysql_oper.php';
$app = new TestClass($db);
$res = $app->Funname($username);
mysql_con.php – создаем коннект к BD.


Читать дальше

Работа с Google Authenticator

Использовал Google Authenticator в проекте по аутентификации на базе PHP. Работа с Google Authenticator идет через класс PHPGangsta_GoogleAuthenticator.

По умолчанию при первичной регистрации, происходит генерация QR-кода (я QR-код заменил на ссылку т.к. основные пользователи – мобильные, а не стационарные). В этом коде содержится URL с username, secret, service-name и редирект на приложение по мультифакторной аутентификации.

Читать дальше