回答編集履歴

4

追記

2016/07/06 03:23

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -1,4 +1,6 @@
1
1
  面倒なので、修正版ソースを載せます。これでどうですか?
2
+
3
+ **分かった!**
2
4
 
3
5
  ```php
4
6
 
@@ -46,4 +48,6 @@
46
48
 
47
49
  $writer->save('php://output');
48
50
 
51
+ exit; // これ入れてください
52
+
49
- ```
53
+ ``` `?>`で閉じてません?最後でexitしないと意図しないものが出力されてしまいます。

3

修正

2016/07/06 03:23

投稿

shi_ue
shi_ue

スコア4437

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

2

追記

2016/07/06 03:10

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -27,3 +27,17 @@
27
27
  $file_path = __DIR__ . '/output.xlsx';
28
28
 
29
29
  ```これでいいです。
30
+
31
+
32
+
33
+ さらに追記
34
+
35
+ ---
36
+
37
+ ```php
38
+
39
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
40
+
41
+ ```
42
+
43
+ わたしはダウンロードさせるときに、content-typeはこのように指定しています。

1

追加

2016/07/06 02:54

投稿

shi_ue
shi_ue

スコア4437

test CHANGED
@@ -7,3 +7,23 @@
7
7
  ```で出力したファイルが同じか確認してみてください。
8
8
 
9
9
  あんまり複雑なことをしていないのに変ですね。
10
+
11
+
12
+
13
+ 追記
14
+
15
+ ---
16
+
17
+ ```php
18
+
19
+ $file_path = dirname(__FILE__) . 'output.xlsx';//ダウンロードさせるファイルのパス
20
+
21
+ ```これおかしくないですか?スラッシュ抜けてますよ。
22
+
23
+ あと、
24
+
25
+ ```php
26
+
27
+ $file_path = __DIR__ . '/output.xlsx';
28
+
29
+ ```これでいいです。