質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

11021閲覧

PHPExcelで出力したファイルのセルが選択状態にしたい

_Trek

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/10/05 03:01

編集2022/01/12 10:55

###実現したいこと
PHPExcelでファイルを作成しダウンロードさせるシステムを作っています。
そこでダウンロードしたファイルを開いたときに複数セルが選択されている状態にしたいです。

テンプレートファイルはシートが1枚だけ
イメージ説明

以下がエクセルを作成しているコードになります

PHP

1function createExcel() { 2 // 出力タイムアウトを3分に変更 3 set_time_limit(180); 4 5 ini_set('memory_limit' , '256M'); 6 7 // テンプレートのコピー 8 $template = "テンプレートファイルのパス"; 9 $savefile = "保存ファイル名"; 10 $dest = "保存場所".$savefile; 11 12 copy($template, $dest); 13 14 // PHPExcelオブジェクトの生成 15 $reader = PHPExcel_IOFactory::createReader('Excel2007'); 16 $xl = $reader->load($template); 17 18 $xl->setActiveSheetIndex(0); 19 $base_sheet = $xl->getActiveSheet(); 20 $temp_sheet[0] = $base_sheet->copy(); 21 $temp_sheet[0]->setTitle("newsheet0"); 22 23 $temp_sheet[1] = $base_sheet->copy(); 24 $temp_sheet[1]->setTitle("newsheet1"); 25 26 $temp_sheet[2] = $base_sheet->copy(); 27 $temp_sheet[2]->setTitle("newsheet2"); 28 29 $temp_sheet[3] = $base_sheet->copy(); 30 $temp_sheet[3]->setTitle("newsheet3"); 31 32 // ------------------------------- // 33 // データの書き込み(省略) // 34 // ------------------------------- // 35 36 // --- シートの追加 37 for ($i = 0; $i < count($temp_sheet_month); $i++) { 38 $xl->addSheet($temp_sheet[$i]); 39 } 40 41 $sheet = $xl->setActiveSheetIndex(2); 42 // --- セルを選択状態にする 43 $sheet->setSelectedCells("C6:AM209"); 44 45 // --- 不要なシートが2枚あるから削除 46 $xl->removeSheetByIndex(1); 47 $xl->removeSheetByIndex(0); 48 49 // Excel2007形式で保存 50 $writer = PHPExcel_IOFactory::createWriter($xl, 'Excel2007'); 51 $writer->save($dest); 52 53 // メモリ解放 54 $xl->disconnectWorksheets(); 55 unset($xl); 56 57 return $savefile; 58}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

method setSelectedCells

を見ると、setSelectedCells()の引数にrangeを渡してやればいいように思います。

setSelectedCells(A1:J19)
とかとか。

投稿2016/10/05 05:05

imutakaoru

総合スコア356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Trek

2016/10/05 05:12

すみません それはやりました 実際はC6:AM209を選択状態にしたかったので $sheet->setSelectedCells('C6:AM209'); をしてあげたのですがC6だけが選択されてる状態で開きました。
guest

0

setSelectedCells()を用いて実現できるかと思います。

php

1$book = new PHPExcel(); 2$sheet = $book->getActiveSheet(); 3 4// 選択セルを範囲指定 5$sheet->setSelectedCells('A1:J19');

投稿2016/10/05 04:58

moriyama

総合スコア259

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Trek

2016/10/05 05:14

すみません それはやりました 実際はC6:AM209を選択状態にしたかったので $sheet->setSelectedCells('C6:AM209'); をしてあげたのですがC6だけが選択されてる状態で開きました。
moriyama

2016/10/05 05:37

その旨、質問文に含めてください。質問の趣旨が全く異なります。 また、実際のコードを提示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問