TOP

PhpSpreadsheetをサクラサーバーにインストールする方法

PhpSpreadsheetをサクラサーバーやMacのMAMPにインストールする方法です。調べているとcomposerを使ってインストールとあるのですがそのあたりの情報やインストールはできたものの動いてるのかどうかなどまとめました。
簡単にまとめていますのでご一読ください。

PhpSpreadsheetをインストール目次

PhpSpreadsheetをサクラサーバーにインストール

PhpSpreadsheetをMacにインストール

ダウンロードサンプル

ちなみにMacにインストールしたPhpSpreadsheetをアップロードしても使えます。

PhpSpreadsheetをサクラサーバーにインストール

まずはSSHでログインする

Macのアプリケーション:ユーティリティにあるターミナルを起動します。

サクラのアドレスとログインIDですが、契約時にFTP情報が届いたと思いますのでそれを使います。
FTPサーバ名 : xxxxxxxx.sakura.ne.jp
FTPアカウント : xxxxxxxx
FTP初期フォルダ : www
サーバパスワード: passwordxxxx
こんな感じだと思います。[xxxxxxxx]がログインIDで[passwordxxxx]がパスワード。これは人によって違います。

sshログイン方法

ターミナルに下記のように入力します。ログインID@FTPサーバ名です

ssh xxxxxxxx@xxxxxxxx.sakura.ne.jp

Are you sure you want to continue connecting (yes/no)?と聞かれる場合はyesとタイプします。

間違いがなければパスワードを聞かれますので、上のパスワードを入力します。

xxxxxxxx@xxxxxxxx.sakura.ne.jp's password: 
passwordxxxx

Welcomeが出れば成功です。

Welcome to FreeBSD!

composerのインストール

続いてcomposerをインストールします。PhpSpreadsheetはこのcomposerを使ってインストールします。

curl -sS https://getcomposer.org/installer | php

下のようにsuccessfullyが出れば成功です。

All settings correct for using Composer
Downloading...

Composer (version 1.8.5) successfully installed to: /home/xxxxxxxx/composer.phar
Use it: php composer.phar

うまくいったかいちおうFTPで確認するとcomposer.pharは/home/xxxxxxxx/直下にありました。

PhpSpreadsheetのインストール

続いてインストールです。上で[Use it: php composer.phar]と書かれていますので[composer.phar]を指定します。場所は[/home/xxxxxxxx/]にあったので下記にようにターミナルに入力します。

/home/xxxxxxxx/composer.phar require phpoffice/phpspreadsheet

ダウンロードが始まりしばらくすると下記のようになります。

Using version ^1.6 for phpoffice/phpspreadsheet
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Installing markbaker/matrix (1.1.4): Downloading (100%)
  - Installing markbaker/complex (1.4.7): Downloading (100%)
  - Installing psr/simple-cache (1.0.1): Downloading (100%)
  - Installing phpoffice/phpspreadsheet (1.6.0): Downloading (100%)
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 tecnickcom/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

またまたFTPで確認するとこれも先ほどど同じディレクトリの/home/xxxxxxxx/直下にありました。
ターミナルで下記を実行するとちゃんとインストールされているか確認できます。

php vendor/phpoffice/phpspreadsheet/samples/index.php

下記のようにpassedになればOKなようです。

Requirement check:
PHP 5.6.0 ...  passed
PHP extension XML ...  passed
PHP extension xmlwriter ...  passed
PHP extension mbstring ...  passed
PHP extension ZipArchive ...  passed
PHP extension GD (optional) ...  passed
PHP extension dom (optional) ...  passed

ログアウトしておきましょう

logout

テストする

エラーを出すようにして下記を[test.php]としてアップしましょう。
[vendor]というディレクトリにある[autoload.php]を読み込む必要があるのですが下記にように絶対パスで指定しました。

ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);

require '/home/xxxxxxxx/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');

エラーがなければ[test.php]をアップしたディレクトリに[hello world.xlsx]ができるはずです。
自動でダウンロードされるのかと思っていたらサーバ上にできるのでしばらくうまくいってるかどうかわからなくて悩みました。
エクセルをダウンロードする方法もありますのでご安心を

[vendor]を移動する

絶対パスでもなんでも動けばいいのですが、これは[test.php]を置いているディレクトリへ移動しても大丈夫です。その場合は下記のようになります

require 'vendor/autoload.php';

PhpSpreadsheetをMacにインストール

Macのアプリケーション:ユーティリティにあるターミナルを起動します。

composerのインストール

まずcomposerをインストールします。PhpSpreadsheetはこのcomposerを使ってインストールします。

curl -sS https://getcomposer.org/installer | php

下のようにsuccessfullyが出れば成功です。

All settings correct for using Composer
Downloading...

Composer (version 1.8.5) successfully installed to: /Users/xxxxxxxx/composer.phar
Use it: php composer.phar

ユーザの[xxxxxxxx]にインストールされたようです。うまくいったか確認するとcomposer.pharは確かにユーザの自分のディレクトリ直下にありました。

PhpSpreadsheetのインストール

続いてインストールです。上で[Use it: php composer.phar]と書かれていますので[composer.phar]を指定します。場所は[/Users/xxxxxxxx/]にあったので下記にようにターミナルに入力します。

/Users/xxxxxxxx/composer.phar require phpoffice/phpspreadsheet

ダウンロードが始まりしばらくすると下記のようになります。

Using version ^1.6 for phpoffice/phpspreadsheet
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Installing markbaker/matrix (1.1.4): Downloading (100%)         
  - Installing markbaker/complex (1.4.7): Downloading (100%)         
  - Installing psr/simple-cache (1.0.1): Downloading (100%)         
  - Installing phpoffice/phpspreadsheet (1.6.0): Downloading (100%)         
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 tecnickcom/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

またまた確認するとこれも先ほどど同じディレクトリの/Users/xxxxxxxx/直下にありました。
ターミナルで下記を実行するとちゃんとインストールされているか確認できます。

php vendor/phpoffice/phpspreadsheet/samples/index.php

下記のようにpassedになればOKなようです。

Requirement check:
PHP 5.6.0 ...  passed
PHP extension XML ...  passed
PHP extension xmlwriter ...  passed
PHP extension mbstring ...  passed
PHP extension ZipArchive ...  passed
PHP extension GD (optional) ...  passed
PHP extension dom (optional) ...  passed

テストする

ダウンロードした[vendor]ですが、ユーザー直下にあっても使いにくいのでMAMPなりテスト環境に移動します。
エラーを出すようにして下記を[test.php]としてテストしましょう。
[vendor]というディレクトリも[test.php]と同じところに置きます。

ini_set('display_errors', 1);
error_reporting(E_ALL ^ E_NOTICE);

require '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');

エラーがなければ[test.php]をのディレクトリに[hello world.xlsx]ができるはずです。
自動でダウンロードされるのかと思っていたらディレクトリに保存されるのでしばらくうまくいってるかどうかわからなくて悩みました。
エクセルをダウンロードする方法もありますのでご安心を

[vendor]をFTPでアップする

さてこの[vendor]ですが、サクラサーバにこのままアップロードしても使えます。わざわざサクラにSSHで繋がなくても大丈夫ですのでご安心ください。

既存のエクセルに書き込んでダウンロードするサンプル

下記は[xlsx/moto.xlsx]を開いてA6にaaaaと書き込んで[ztest.xlsx]というファイル名で保存するプログラムです。お試しください。

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Writer\Xlsx as Writer;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as Reader;

$reader = new Reader();
$spreadsheet = $reader->load('xlsx/moto.xlsx');

$sheet = $spreadsheet->getActiveSheet();

$sheet->setCellValue('A6', 'aaaa');

header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="ztest.xlsx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
ob_end_clean(); //バッファ消去

$writer = new Writer($spreadsheet);
$writer->save('php://output');

できあがったExcelがエラーで開かない

そういう時はできあがったExcelをテキストエディタで開いてみてください。エクセルファイルにエラーが記録されています。

まとめ

いかがでしょうか?これなら成功するか失敗するかを事前に確かめることができ、しかもお金がかかりません。失敗してももともとですし、うまく人が集まればそこから収益化していけます。 ぜひシステムを先に作るのではなく先に人を集めるところから考えてみてください。

グリットテスト

アンジェラ・ダックワースさん著の『GRIT やり抜く力』から「やり抜く力」をはかるグリットケールを作ってみましたのでご利用ください。

ビデオサービス コンテンツ一覧

ビデオサービス コンテンツ一覧を作成しました。(Amazonプライム・dアニメストア・Disney+・DMM TV・dTV・hulu・NETFLIX・U-NEXT一覧です)

サイト乗っ取りの攻撃への対応プログラム

サイト乗っ取り被害にあいました。幸いすぐに対応できたのですが数日間攻防したので経緯と、攻撃への対応プログラムを公開します。

新型コロナ COVID-19で新しいビジネスを考える

新型コロナ COVID-19で、経済も世界も大きなダメージを受けています。しかしこのまま滅入っているわけにはいきません。新しく何かできないか考えてみましょう。

起業してわかった会社に残るリスク

もし起業して失敗したら若いうちはともかくそこそこの年齢になると再就職も難しいしもう取り返しがつかない。はたして本当でしょうか

起業するリスクがわかればリスクを最小限にできる

起業=リスクとは失敗するリスクですが。どの状態が失敗なのか・どうすれば失敗は避けられるのかを理解すればリスクを減らすことができそうです。

人生100年時代は本当に来るのか

人生100年時代が来ると言われていますが、日本人の平均寿命は女性87.14歳 男性80.98歳‎。本当に寿命は伸びるのでしょうか?検証しました。

マッチングビジネスで起業はちょっと待って!

交流会などでよく耳にするマッチングビジネス系。ところがマッチングビジネスは難しいと思うのです。なぜ難しいか説明します。

中国ビジネスについて知ったことをシェア

中国の人口は10億人とも言われ世界一。ぜひ挑戦してみたいと思うのですが本当のところどうなのでしょう?中国人の友達などに聞いたことをシェアします。

プログラマー・デザイナーがWEBサービスを作って運営する方法

デザイナーには物事を整頓して伝える力があり、プログラマーにはサービスを構築する力があります。この2つの力でWEBサービスを作る方法を考えてみました。

2018版会社設立の電子認証

電子定款を作成するのにいろいろハマったので簡易メモを残します。
2018/11月の方法です。

年収診断シミュレーション

あなたの適正年収はいくらでしょう?年齢や地域・業種・職種などを選んで平均年収を調べます。

年金受給額計算シミュレーション

あなたは年金をいくらもらえるのでしょう?もらえる年金を簡易計算します。

Mac版マイナンバーカードを使った特別定額給付金の申請方法

今年の新型コロナ COVID-19によって緊急事態宣言となり、対策として1人10万円の特別定額給付金が支給されるようになりました。そこでMacからマイナンバーカードを使った申請方法を解説します。

年金にも税金・健康保険はかかります

年金とはいえ収入なのでしっかり税金も健康保険代も引かれてしまいます。どれくらい引かれるか調べました。

結局退職金はいくらもらえるの?

退職金を投資にとか開業資金になどと思われている方!それは一部の大企業のお話。中小企業だと退職金制度自体無い場合もあります。

年金に限界!貯蓄2000万円必要

検証します!金融庁はほぼ年金に頼る生活を送った場合、約2000万円が不足するという試算を示した。本当は?

年金プラス2000万円。支出の根拠がおかしい

金融庁の約2000万円が不足の報告書。年金は19万、支出が26万円この根拠を調べるといろいろおかしい点がわかりました。

もらい忘れないですか?年金や失業保険のまとめ

年金受注年齢になっても申請しないともらえない年金があるので一度確認しましょう。簡単に一覧にまとめました。

1992年の初任給はいくらだったか

給料が少ない上がらないなど給料の悩みも多いのではないでしょうか?では昔はどうだったのでしょう?1992年の初任給を分析します。

すぐわかる![iDeCo](確定拠出年金)とは何か

近頃よく耳にする[iDeCo](確定拠出年金)。そもそもiDeCoとはなんなのか?もうかるのか?をまったく知らない人に簡単に説明します。

すぐわかる![つみたてNISA]とは何か

近頃よく耳にする[つみたてNISA]。そもそも[つみたてNISA]とはなんなのか?もうかるのか?をまったく知らない人に簡単に説明します。

楽天証券[つみたてNISA]から商品ピックアップ

楽天証券の[つみたてNISA]は約150の商品があります。その中からどれを選べばいいかピックアップする検索システムを作りました

安全運用?積極運用?投資リスク許容度診断

投資信託 iDeCo NISAの商品を選ぶにあたってあなたのリスク許容度によって選ぶ商品も少しづつ変わって来ます。ここではあなたのリスク許容度を診断します。

株の投資AI

近頃AIが流行っています。ディープラーニングや画像認識・自動運転などなど。そこで株の投資を考えてくれるAIを作成しました。こちらをご覧ください。

株の投資AI2

うねりチャート底値買い投資術で株を選んでくれるAIを作成しました。こちらをご覧ください。

生命保険の保険金額計算機

保険は家についで2番目に高い買い物と言われていますがはたしてそれは適正な保険なのでしょうか?チェックしてみてください。

住宅ローンシミュレーション

シミュレーションを2種類用意。家賃と同じ額で買える物件の価格を出すシミュレーションと、物件の価格から支払額を出すシミュレーション。

メールアドレスなしで年収診断ができるサイト一覧

会員登録なしで年収診断できるサイトをまとめました。

50代からのマネープランについて

運営者について|お問い合わせ

50代からのマネープラン
TOP