閉じる
  1. Mac + Parallels で日本語入力(IME)切り替えをスムー…
  2. GMO WP Cloud 事始め
閉じる
閉じる
  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. キャッシュファイルが作成できません

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

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

  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人のブロガーが「いいね」をつけました。