teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2016/07/06 03:23

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  面倒なので、修正版ソースを載せます。これでどうですか?
2
+ **分かった!**
2
3
  ```php
3
4
  //PHPExcelファイルの読み込み
4
5
  include_once ( __DIR__ . '/Classes/PHPExcel.php');
@@ -22,4 +23,5 @@
22
23
  header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//ダウンロードの指示
23
24
  header("Content-Disposition: attachment; filename=$file_name");//ダウンロードするファイル名
24
25
  $writer->save('php://output');
26
+ exit; // これ入れてください
25
- ```
27
+ ``` `?>`で閉じてません?最後でexitしないと意図しないものが出力されてしまいます。

3

修正

2016/07/06 03:23

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -1,22 +1,25 @@
1
- ダウンロードしたファイルと
1
+ 面倒なので修正版ソースを載せます。これでどうですか?
2
2
  ```php
3
+ //PHPExcelファイルの読み込み
3
- $writer->save(dirname(__FILE__) . '/output.xlsx');
4
+ include_once ( __DIR__ . '/Classes/PHPExcel.php');
4
- ```で出力したファイルが同じか確認してみてください。
5
+ include_once ( __DIR__ . '/Classes/PHPExcel/IOFactory.php');
5
- あんまり複雑なことをしていないのに変ですね。
6
6
 
7
- 追記
8
- ---
9
- ```php
7
+ // Excel2007形式(xlsx)テンプレートの読み込み
10
- $file_path = dirname(__FILE__) . 'output.xlsx';//ダウンロードさせるファイルのパス
8
+ $reader = PHPExcel_IOFactory::createReader('Excel2007');
11
- ```これおかしくないですか?スラッシュ抜けてますよ。
12
- あと、
13
- ```php
14
- $file_path = __DIR__ . '/output.xlsx';
9
+ $excel = $reader->load( __DIR__ . '/template.xlsx' );
15
- ```これでいいです。
16
10
 
11
+ // シートの設定
12
+ $excel->setActiveSheetIndex(0);//何番目のシートか
13
+ $sheet = $excel->getActiveSheet();//有効になっているシートを代入
14
+
17
- さら追記
15
+ // セル値を入力
18
- ---
16
+ $sheet->setCellValue('A8', 'こんにちは!');//A1のセルにこんにちは!という値を入力
17
+
19
- ```php
18
+ // Excel2007形式で出力する
19
+ $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
20
+
21
+ $file_name = 'output.xlsx';//ダウンロードさせるファイル名
20
- header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
22
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//ダウンロードの指示
23
+ header("Content-Disposition: attachment; filename=$file_name");//ダウンロードするファイル名
24
+ $writer->save('php://output');
21
- ```
25
+ ```
22
- わたしはダウンロードさせるときに、content-typeはこのように指定しています。

2

追記

2016/07/06 03:10

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -12,4 +12,11 @@
12
12
  あと、
13
13
  ```php
14
14
  $file_path = __DIR__ . '/output.xlsx';
15
- ```これでいいです。
15
+ ```これでいいです。
16
+
17
+ さらに追記
18
+ ---
19
+ ```php
20
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
21
+ ```
22
+ わたしはダウンロードさせるときに、content-typeはこのように指定しています。

1

追加

2016/07/06 02:54

投稿

shi_ue
shi_ue

スコア4437

answer CHANGED
@@ -2,4 +2,14 @@
2
2
  ```php
3
3
  $writer->save(dirname(__FILE__) . '/output.xlsx');
4
4
  ```で出力したファイルが同じか確認してみてください。
5
- あんまり複雑なことをしていないのに変ですね。
5
+ あんまり複雑なことをしていないのに変ですね。
6
+
7
+ 追記
8
+ ---
9
+ ```php
10
+ $file_path = dirname(__FILE__) . 'output.xlsx';//ダウンロードさせるファイルのパス
11
+ ```これおかしくないですか?スラッシュ抜けてますよ。
12
+ あと、
13
+ ```php
14
+ $file_path = __DIR__ . '/output.xlsx';
15
+ ```これでいいです。