閉じる
  1. GMO WP Cloud 事始め
  2. Mac + Parallels で日本語入力(IME)切り替えをスムー…
閉じる
閉じる
  1. Macの通知を制御する(Google Chromeだけオフにする対応も…
  2. 尿酸値を下げる(プリン体が原因ではなかった?)
  3. 100円でLightningケーブルを保護する vs 100均Ligh…
  4. iPhone機種変更で困ったこと(復元できない・ヘルスケア・Apple…
  5. 事業承継について(3)節税に向けて
  6. 事業承継について(2)我が社の株価はいくらか?
  7. 事業承継について(1)
  8. PHPExcelでセルの名前(ラベル)を使う
  9. MacとiPhoneでメモ帳を同期する
  10. Android端末の95%に深刻な脆弱性。メッセージ受信だけで乗っ取り…
閉じる

リンゴと守護神とペンギンと窓

PHPExcelでセルの名前(ラベル)を使う

セルに対する通常の処理

こんな風に定義されているとして・・

$objReader = PHPExcel_IOFactory::createReader("Excel2007");
$book = $objReader->load('hoge.xlsx');
$sheet = $book->setActiveSheetIndex(0);

セルの通名(A1, B3など)を使う

// A1セルに1024をセット
$sheet->setCellValue("A1", 1024);

セルの列番号、行番号を使う

// A1セルに2048をセット。列はゼロオリジン、行は1オリジン・・不思議
$sheet->getCellByColumnAndRow(0, 1)->setValue(2048);

セルの名前(ラベル)を使う

// ラベルの定義があるか調べる
if ($sheet->cellExists("MY_CELL_LABEL")) {
    // ラベルの設定されているセルに 4096をセット
    $sheet->setCellValue("MY_CELL_LABEL", 4096);
} else {
    // ラベルが無いときの処理
}

名前(ラベル)から通名(A1, B3など)を得る

画像を貼るときは、名前で setCoordinates できない。通常は、

$objDrawing = new PHPExcel_Worksheet_drawing(); // 画像オブジェクトをインスタンス化
$objDrawing->setPath("hoge.jpg"); // 画像ファイルを得る
$ojDrawing->setCoodinates("A1"); // 配置セルを決める
$objDrawing->setOffsetX(100); // 右にずらす
$objDrawing->setOffsetY(40); // 下にずらす
$objDrawing->setWOrksheet($book->getAcgiveSheet()); // 画像をワークシートに配置

などとすると思うが、セルの名前で配置しようとすると例外が発生する。
このため、名前からセルの通名を得る。上記、配置セルを決める部分を以下のようにする。

if ($sheet->cellExists("MY_JPG_LABEL")) { // 目的のラベルがあるかを調べる
    $tmp_cell = $sheet->getCell("MY_JPG_LABEL"); // 名前からセルを得る
    $tmp_cell_name = $tmp_cell->getColumn() . $tmp_cell->getRow(); // 通名を得る
    $objDrawing->setCoodinates($tmp_cell_name); // 配置セルを決める
} else {
    // ラベルがないときの処理
}

関連記事

  1. iOSデバイスのUDID(識別子)を調べる

  2. PHPExcelで大きいエクセルファイルを読み込んだときメモリ不…

  3. キャッシュファイルが作成できません

  4. Macでステップカウンタ(Ohcount)を使う

おすすめ記事

  1. GMO WP Cloud 事始め
  2. Mac + Parallels で日本語入力(IME)切り替えをスムーズに

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

おすすめ記事

  1. Macの通知を制御する(Google Chromeだけオフにする対応も)
  2. 尿酸値を下げる(プリン体が原因ではなかった?)
  3. 100円でLightningケーブルを保護する vs 100均Lightningケーブル
ページ上部へ戻る
%d人のブロガーが「いいね」をつけました。