PhpSpreadsheetã§Excelãã¡ã¤ã«ãèªã¿è¾¼ãã§å¤ãæ¿å ¥ãä¿åãããµã³ãã«
ã³ã¼ã
<?php require '/Users/sakuragaoka/vendor/autoload.php'; // ãã¡ã¤ã«ãèªã¿è¾¼ã $reader = new PhpOffice\PhpSpreadsheet\Reader\Xlsx(); $reader->setIncludeCharts(TRUE); $book = $reader->load('template.xlsx'); // å¤ãæ¸ãè¾¼ã $book->setActiveSheetIndex(1); // äºçªç®ã®ã·ã¼ããé¸æãã $sheet = $book->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); $book->setActiveSheetIndex(0); // æåã®ã·ã¼ããé¸æãã // ãã¡ã¤ã«ãæ¸ãåºã $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($book); $writer->setIncludeCharts(TRUE); $writer->save('output.xlsx');
xamppã§PhpSpreadsheetã試ãã¦ã¿ã
xamppã®phpã§PhpSpreadsheetã試ãã¦ã¿ãã
PhpSpreadsheetã¯Composerã使ã£ã¦ã¤ã³ã¹ãã¼ã«ãããã¨ã«ãªãã
ç°å¢
C:\Users\sakuragaoka>ver Microsoft Windows [Version 6.1.7601] C:\Users\sakuragaoka>php -v PHP 7.1.9 (cli) (built: Aug 30 2017 18:37:35) ( ZTS MSVC14 (Visual C++ 2015) x86) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
Composerãå ¥ãã
æé
https://getcomposer.org/download/
ãããã¦ã³ãã¼ããã¤ã³ã¹ãã¼ã©ã§å
¥ãã
èµ·å
C:\Users\sakuragaoka>composer ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.5.2 2017-09-11 16:59:25 Usage: command [options] [arguments] ï¼ç¥ï¼ C:\Users\sakuragaoka>composer.bat --version Composer version 1.5.2 2017-09-11 16:59:25
Composerã使ã£ã¦PhpSpreadsheetãå ¥ãã
æé
C:\Users\sakuragaoka>composer require phpoffice/phpspreadsheet:dev-develop ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 2 installs, 0 updates, 0 removals - Installing psr/simple-cache (1.0.0): Downloading (100%) - Installing phpoffice/phpspreadsheet (dev-develop 1cec980): Cloning 1cec980167 from cache phpoffice/phpspreadsheet suggests installing mpdf/mpdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing dompdf/dompdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing tecnick.com/tcpdf (Option for rendering PDF with PDF Writer) phpoffice/phpspreadsheet suggests installing jpgraph/jpgraph (Option for rendering charts, or including charts with PDF or HTML Writers) Writing lock file Generating autoload files C:\Users\sakuragaoka>
åä½ç¢ºèª
ããããã
C:\home\work\phpspreadsheet\hello.php
ã«
https://phpspreadsheet.readthedocs.io/en/develop/#installation
ã«ããHello Worldãµã³ãã«ãä½æãã¦ãã
C:\Users\sakuragaoka>cd C:\home\work\phpspreadsheet C:\home\work\phpspreadsheet>type hello.php <?php require '/Users/sakuragaoka/vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World !'); $writer = new Xlsx($spreadsheet); $writer->save('hello world.xlsx'); C:\home\work\phpspreadsheet>php hello.php C:\home\work\phpspreadsheet>
C:\home\work\phpspreadsheet
ã®ä¸ã«hello world.xlsxãä½æããã
ããªã¼ç´ æ
å½åå°çé¢å°å³ãã¼ã¹ã
ãããªãã¯ãã¡ã¤ã³ãããã¯ã好ããªããªã¼ã©ã¤ã»ã³ã¹ãé©ç¨ãã¦ä½¿ã£ã¦ãã ããã
ãæ¦ã®ä¸ã§ã¯ãã£ã»ã³ãã¼ãè²·ã£ãã
è²·ã£ãã
ããã¾ã¡ãããã®åä¸æã§ãå®®è¤å®ä¹éä½è©ã¨ãããã¨ã§ãªããªãé¢ç½ãæã
æ¦ã®ä¸ã§ã¯ãã£ã»ã³ãã¼
Amazonã§mp3é³æ¥½ãã¼ã¿ã§250åã
ãã®ãã¡ã¿ãåç¶ã§GEOãããã§ä¸¦ã¶ã ãããã©ã
- ãã¾ãã
- ãªããã³ã°ã®æéãªã
- ã¿ã°å ¥åã®æéãªã
- ã¢ã¼ãã¯ã¼ã¯ãã°ã£ã¡ãã¤ã
ã¨ããã¡ãªããã«250åæã£ãã¨æãã°å®ãã
ãYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã®ã¡ã¼ã«ãPCãGmailã§ãéåä¿¡ããæ¹æ³
ãYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã£ã¦ã¹ããã¢ããªããããå©ç¨åºæ¥ãªãããä¸ä¾¿ï¼ã¨ãåãã®ããªãã
ãããããã¡ããã¨åºæ¥ã¾ããã
ç°¡åã«è¨ãã¨
- ãYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã®ã¡ã¼ã«ã¢ãã¬ã¹ã»ãã¹ã¯ã¼ãã§Yahoo!Japanã«ãã°ã¤ã³åºæ¥ã
- ãã®ç¶æ ã§Yahoo!ã¡ã¼ã«ãéãã¨ãYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã®ã¡ã¼ã«ã¢ãã¬ã¹ã§éåä¿¡åºæ¥ã
- ããã«POPã¢ã¯ã»ã¹ãæå¹ã«ããã°é常ã®ã¡ã¼ã©ã¼ãGmailããã§ãéåä¿¡åºæ¥ãï¼ãã ãåºåã¡ã¼ã«åä¿¡ãå¿ è¦ï¼
ã¨ããæãã§ãã
ã§ã¯æé ãã
Yahoo!Japanãããã°ã¢ã¦ãããç¶æ ã§ä¸è¨ãéãããYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã®ã¡ã¼ã«ã¢ãã¬ã¹ã»ãã¹ã¯ã¼ãã§ãã°ã¤ã³
https://login.yahoo.co.jp/config/login
ã¤ãã§ãªã®ã§çå¹´ææ¥ã»éµä¾¿çªå·ã»ç§å¯ã®è³ªåãç»é²ãã¦ãã
ç»é²æ å ±ã®ç·¨éå®äº
Yahoo!ã¡ã¼ã«ãéã
ãªãã¨ãYahoo!ã³ãã¥ãã±ã¼ã·ã§ã³ã¡ã¼ã«ãã§éåä¿¡ããã¡ã¼ã«ãè¦ãããï¼
ãã¡ã¼ã«ã®è¨å®ããéã
ãPOPã¢ã¯ã»ã¹ã¨ã¡ã¼ã«è»¢éããéã
Yahoo!ããªããªã¼ã«ç»é²ãã
Yahoo!ããªããªã¼ã¨ããã®ã¯Yahoo!Japanã®åºåã¡ã¼ã«é
ä¿¡ãµã¼ãã¹ã®ãã¨ã
åºåã¡ã¼ã«ãå±ãããã«ããªãã¨POPã¢ã¯ã»ã¹ã¯ä½¿ããã¦è²°ããªãã¿ããã§ãã
ãªãã«ãGmailã§ãçµç±ãã¦ã´ãç®±ç´è¡ãã£ã«ã¿ã¼ã§ã使ãã°ãããã
ãPOPã¢ã¯ã»ã¹ã¨ã¡ã¼ã«è»¢éãã®è¨å®
ãè¨å®ããããã¿ã³ãæ¼ãã°POPã»SMTPã®è¨å®æ
å ±ã表示ãããã®ã§ããã¨ã¯å¥½ããªã¡ã¼ã©ã¼ãªãGmailãªãã«è¨å®ããã°OKï¼
SANYO eneloop éå®å3å½¢8æ¬ãã㯠HR-3UTGB-8U
è¶
å°åï¼2å°åæå
é»[iPhone5ã»iPad mini対å¿ï¼å社Androidã¹ãã¼ããã©ã³ãiPad第4ä¸ä»£ã»iPad3ã»iPad2ã»iPhone4Sã»4対å¿]ï¼ãã¼ãUSBã·ã¬ã¼ã½ã±ããã«ã¼ãã£ã¼ã¸ã£ã¼ã2000mAãã¤ãã¯ã¼åºåãAndroidç¨å
é»ã±ã¼ãã«ä»å±
iPhone5 iPad4 iPad mini Android 対å¿ã2.1A è¶
å°å ï¼ãã¼ãUSB ãªã¬ã³ã¸LEDçºå
ã·ã¬ã¼ã½ã±ãã ã«ã¼ãã£ã¼ã¸ã£ã¼æ¥æ¬èªããã±ã¼ã¸
Hanwha USB 2ãã¼ãæè¼ USBã«ã¼ãã£ã¼ã¸ã£ã¼ é«åºå2.1Aãã¼ãæè¼ã§iPadã®å
é»ã«ã対å¿! UMA-2USBCA21
Web::Queryã§ãã£ãã·ã¥æ©è½ãæããã
éçºç¨ã«å¦çå
容ãã¡ããã¡ããæ¸ãæããªããã¹ã¯ã¬ã¤ãã³ã°ãåãã¾ããã¨ãåãåããå
ã®Webãµã¼ãã¼ã«ãªã¯ã¨ã¹ãæãã¾ãããã§ã¡ãã£ã¨è¿·æãããã¾ãã
ããã§ãã£ãã·ã¥ãå®è£
ãã¦ã¿ããã§ããä¸çªç°¡åãªã®ã¯HTTP::Cache::Transparentã§ãã
æé ã¯ããã ã
- HTTP::Cache::TransparentãWeb::Queryããå¾ã«useãã
- å®éã«Web::Queryã使ãåã«HTTP::Cache::Transparentãinitãã
å®é¨ç°å¢ã¯ãã¤ãã®ãããVPSã
â å
ã®ã³ã¼ã
ãããVPSã§ã¨ããããWeb::Queryã使ããããã«ãã¦ã¿ã
http://sakuragaoka.hatenadiary.jp/entry/2013/06/07/201740
â åè
http://d.ballade.jp/blog/2008/03/lwpget_1b79.html
â ã¤ã³ã¹ãã¼ã«
$ sudo cpan HTTP::Cache::Transparent
â 使ã£ã¦ã¿ã
- BasePath: ãã£ãã·ã¥ãä½ãå ´æ
- NoUpdate: ãã®éï¼ç§ï¼ã¯Webãµã¼ãã¼ã«å度åãåãããããªã
- MaxAge: ãã®éï¼æéï¼ãã£ãã·ã¥ãã¡ã¤ã«ãä¿æãã
- Verbose: 1ã«ããã¨ç»é¢ã«åé·ãªåºåããã
#!/usr/bin/env perl use utf8; use strict; use warnings; use Web::Query; use HTTP::Cache::Transparent; binmode(STDOUT, ":utf8"); HTTP::Cache::Transparent::init({ BasePath => '/var/www/XXXXXX/batch/httpcache/wq', NoUpdate => 60*60*24*7, # sec MaxAge => 24*365, # hour Verbose => 0, }); wq('http://www.goo-net.com/catalog/')->find('div.box_searchUsedCar ul.line li a')->each(sub{ $_[1]->each(sub{ my(undef, $wq) = @_; my $name_j = $wq->text(); my $name = $wq->attr('href'); $name =~s|^/catalog/(\w+)/index.html$|$1|; print qq|$name ($name_j)\n|; }) }); exit;
â çµæ
ãã£ãã·ã¥æãç¡ãã®éãã ããªãã§ãå®è¡ãã¦ãæ¹å¤åã®ã³ã¼ãã¨åºåã¯å¤ãããªã訳ã§ãããã£ãã·ã¥ãåºæ¥ã¦ãã®ã¯ç¢ºèªåºæ¥ã¾ãã
$ ls -l /var/www/cardata/batch/httpcache/wq total 48 -rw-rw-r-- 1 sakuragaoka 49024 Jul 11 13:43 a09f5047f9c2d2e9959587f9ac732c17
Spidering hacksâã¦ã§ãæ
å ±ã©ã¯ã©ã¯åå¾ãã¯ããã¯101é¸
ãããVPSã§ã¨ããããWeb::Queryã使ããããã«ãã¦ã¿ã
Perlã§jQuery風ã®ã»ã¬ã¯ã¿ã使ã£ã¦ã¹ã¯ã¬ã¤ãã³ã°ãåºæ¥ãã¢ã¸ã¥ã¼ã«ãWeb::Queryã使ãããã®ã§ã¾ãã¯ä½¿ããããã«ãã¦ã¿ãã
ã¤ã³ã¹ãã¼ã«ã
$ sudo yum -y install cpan (ä¸ç¥) Installed: perl-CPAN.x86_64 0:1.9402-131.el6_4 Dependency Installed: perl-Digest-SHA.x86_64 1:5.47-131.el6_4 perl-ExtUtils-MakeMaker.x86_64 0:6.55-131.el6_4 perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-131.el6_4 perl-Test-Harness.x86_64 0:3.17-131.el6_4 perl-devel.x86_64 4:5.10.1-131.el6_4 Complete! $ sudo cpan cpan> install CPAN cpan> reload cpan $ sudo cpan Module::Build $ sudo cpan Web::Query
ãã¹ãã
èªåè»ã®ã¡ã¼ã«ã¼åä¸è¦§ãgoo-netããåå¾ãããã¼ï¼
$ cat > ~/sample.pl use strict; use warnings; use Web::Query; binmode(STDOUT, ":utf8"); wq('http://www.goo-net.com/catalog/') ->find('div.box_searchUsedCar ul.line li a') ->each(sub{ $_[1]->each(sub{ my(undef, $wq) = @_; my $name_j = $wq->text(); my $name = $wq->attr('href'); $name =~s|^/catalog/(\w+)/index.html$|$1|; print qq|$name ($name_j)\n|; }) }); exit;
å®è¡ãã¦ã¿ã
$ perl ~/sample.pl LEXUS (ã¬ã¯ãµã¹) TOYOTA (ãã¨ã¿) NISSAN (æ¥ç£) HONDA (ãã³ã) MAZDA (ããã) EUNOS (ã¦ã¼ãã¹) FORD_JAPAN (æ¥æ¬ãã©ã¼ã) MITSUBISHI (ä¸è±) SUBARU (ã¹ãã«) DAIHATSU (ãã¤ãã) SUZUKI (ã¹ãºã) ISUZU (ããã) MITSUOKA (ãããªã«) RENAULT (ã«ãã¼) PEUGEOT (ãã¸ã§ã¼) CITROEN (ã·ããã¨ã³) VENTURI (ã´ã§ã³ãã¥ãªã¼) MERCEDES_BENZ (ã¡ã«ã»ãã¹ã»ãã³ã) AMG (AMG) MAYBACH (ãã¤ããã) MCC_SMART (ã¹ãã¼ã) BMW (BMW) BMW_ALPINA (BMWã¢ã«ãã) AUDI (ã¢ã¦ãã£) VOLKSWAGEN (ãã©ã«ã¯ã¹ã¯ã¼ã²ã³) MINI (MINI) OPEL (ãªãã«) PORSCHE (ãã«ã·ã§) EUROPE_FORD (ã¨ã¼ããããã©ã¼ã) YES (ã¤ã¨ã¹ï¼) VOLVO (ãã«ã) SAAB (ãµã¼ã) ROLLSROYCE (ãã¼ã«ã¹ãã¤ã¹) BENTLEY (ãã³ãã¬ã¼) JAGUAR (ã¸ã£ã¬ã¼) DAIMLER (ãã¤ã ã©ã¼) LAND_ROVER (ã©ã³ããã¼ãã¼) MG (MG) ROVER (ãã¼ãã¼) LOTUS (ãã¼ã¿ã¹) ASTON_MARTIN (ã¢ã¹ãã³ãã¼ãã£ã³) MORGAN (ã¢ã¼ã¬ã³) TVR (TVR) FIAT (ãã£ã¢ãã) ABARTH (ã¢ãã«ã) FERRARI (ãã§ã©ã¼ãª) LANCIA (ã©ã³ãã¢) ALFA_ROMEO (ã¢ã«ãã¡ãã¡ãª) MASERATI (ãã»ã©ãã£) LAMBORGHINI (ã©ã³ãã«ã®ã¼ã) AUTOBIANCHI (ã¢ã¦ããã¢ã³ã)
åè
http://d.hatena.ne.jp/lesamoureuses/20110222/1298317227