【phpSpreadsheet】PHPでExcelを読み込んだらグラフが消える

phpSpreadsheetを長らく使っていますが、
あるとき「読み込んだExcelのグラフをそのまま出力したい」
という要望がありました。

何も考えずにグラフも読み込めるだろうと
過去のシステムからphpSpreadsheet使用部分をコピペして持ってきたところ、
出力したExcelはグラフだけ消えてしまいました。

知っている人にとってはなんということはないのですが、
グラフ付きのExcelを読み込むときは、Readerに対して

という設定が必要だとわかりました。

また、出力時も同様に、Writerに対して

が必要でした。

この歳になってまたひとつ勉強になりました。

例)

【JavaScript】TinyMCEを組み込んだフォームの値の取得と設定

TinyMCEを組み込んだフォームの値をJavaScriptで取得したり設定したりするには
TinyMCEのメソッドを使用する必要があります。

フォームの値を取得する

フォームに値をセットする

【jQuery】jquery.validate.jsで任意のclassに対して独自のバリデーションを設定する

例えば、validation-alphaというクラスが指定されたら半角英字のみ入力可能にしたいとき

JavaScript

HTML

【PHP】Return-Path未指定だと迷惑メール扱いになるケース

最近クライアントからの依頼で、Gmail宛てのメールが届かない問題の解消というのがありました。

調べてみると、迷惑メールフォルダに入っていました。
メールヘッダーを確認したところ、

SPF:pass
DMARC:fail

という結果になっていました。
DMARCがNGなのが迷惑メール判定された理由だろうと推測できます。
そしてDKIMはなぜか事情があって設定できないらしいです。

SPFがpassなのになぜDMARCがfailなのかというと、
送信元ドメインが正常にSPFレコードに指定されていればSPFはpassとなりますが
DMARCのSPF判定条件はそれだけではありません。

送信元アドレスとReturn-Pathヘッダーが一致していなければ
SPFアライメントの不一致となり、
さらにDKIMが未設定の場合はなりすましかどうかの判断がつかず、DMARCはNGとなります。

今回の件では、メール送信にPHPのmail関数が使われていました。
mail関数(mb_send_mailも同じだが)では5つ目の引数に
Return-Pathを強制的に指定するパラメータを追加することができます。

Return-Pathを指定しない場合、
SMTPサーバー側で指定されたアドレスが自動的に入ります。
レンタルサーバーの場合、初期ドメインの管理者アドレスが自動で入ることになり、
SPFアライメントは不一致となります。

Return-PathにFromと同じアドレスを入れる改修を行った結果、
迷惑メール扱いされず届くようになりました。

イベントログを解析するためのツール「Event Log Explorer」

Active Direcotryのグループポリシー設定の「ファイルシステム監査」を利用して、
イベントログに「いつ誰がどのファイルにアクセスしたか」を記録するようにしています。

しかし、ログを解析するにあたって、
Windows標準のイベントビューアでは検索がまったく機能せず、解析できません。
そこでイベントログ解析のツールを探していました。

・期間指定
・ユーザー名やファイル名で検索
というのが最低限必要な機能です。

「Event Log Explorer」
https://eventlogxp.com/ja/

英語のソフトですが、GUIなので使いやすいです。

商用利用版は有料です。
無料版では自分のPCの最新ログの解析しかできないようです。

情シスとして会社のファイルサーバーの過去ログ解析を目的としているので、
有料版の購入を検討しています。