改ページの最後の行にカスタム フッターを配置するとします。
横向きの新しい空白のワークシートでは、ページの最後の行は行 34 です。
それを試してみてください!
- エクセルを開く
- 新しいワークシート
- セル A1 に「こんにちは」と入力します。
自動改ページ (点線) が表示されます。
行の高さが変わらない場合、各ページには 34 行あります。
したがって、フッターは 34 行ごとに配置します。 単純!
ただし、高さが異なる行がある場合は、より複雑になります。さあ、袖をまくり上げて、独自のアルゴリズムを調理する必要があります! 目標は、意図した場所に常に着地するオフセットを見つけることです。
1 行 = 15 RowHeight ポイント (100% dpi) であることがわかっています。アプローチは、特定のセル内の改行数を見つけて、オフセットする行数を決定することです。
// cell w/ multiple lines of text
Excel.Range rng = ws.get_Range("A3");
int lineBreakCnt = rng.Text.Count(x => x == '\n');
// if range is merged, it will not auto-adjust RowHeight. So:
int rowHeight = 15; // 15 points = 1
int rowHeight = lineBreakCnt > 1 ? rowHeight * lineBreakCnt + (rowHeight / 2) : rowHeight * lineBreakCnt + rowHeight;
rng.RowHeight = rowHeight;
//Calc footer row
int footerRow = 34;
//depending how much cell contents push down, adjust footer row
if (lineBreakCnt == 1)
{
footerRow -= (lineBreakCnt - 2) + 2;
}
else
if (lineBreakCnt > 1)
{
footerRow -= (lineBreakCnt -2) + 1;
}
ws.get_Range("A" + footerRow).Formula = "Cool footer w/ formatted text here";
A3 に複数行のテキストを挿入してテストします。
これが役に立ったら、「いいね!」でサポートしてください。