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