作成日: 2026/06/23 最終更新日: 2026/06/23
文書種別
不具合
状況
回避方法あり
詳細
Workbookを使用してテーブル書式をExcel出力した場合、以下のテーブルのスタイルが適用されません。
1. 集計行の数値フォーマット
3桁区切り、通貨記号、小数点以下の桁数の指定が効かない
2. テーブル内の罫線
内側縦線、内側横線(各セルを囲むようにしたい)が効かない
1. 集計行の数値フォーマット
3桁区切り、通貨記号、小数点以下の桁数の指定が効かない
2. テーブル内の罫線
内側縦線、内側横線(各セルを囲むようにしたい)が効かない
回避方法
1. 各セルにセルスタイルで別々に枠を適用します。
2. 「_populateTableTotalRows」メソッドをオーバーライドして、全体の行にスタイルを適用します。
(wjXlsx as any)._xlsx._populateTableTotalRows = function (e: any) {
var o = e.tables;
if (o && 0 !== o.length)
for (var t = 0; t < o.length; t++) {
var i = o[t];
if (i.showTotalRow && i.columns && 0 !== i.columns.length) {
var a = i.range.split(":"),
r = a[0],
l = a[1],
n = Workbook.tableAddress(r),
s = Workbook.tableAddress(l).row,
h = n.col,
d = n.row + (i.showHeaderRow ? 1 : 0),
c = s - 1;
e.rows || (e.rows = []);
e.rows[s] || (e.rows[s] = { cells: [] });
var u = e.rows[s];
u.cells || (u.cells = []);
for (var g = 0; g < i.columns.length; g++) {
var m = i.columns[g],
f = h + g;
if (!u.cells[f] || (null == u.cells[f].value && null == u.cells[f].formula)) {
u.cells[f] || (u.cells[f] = {});
if (m.totalRowLabel) u.cells[f].value = m.totalRowLabel;
else if (m.totalRowFunction) {
var S = m.totalRowFunction,
x = (wjXlsx as any)._xlsx._totalRowFunctions[S];
if (x) {
var p = (wjXlsx as any)._xlsx._calculateSubtotal(S, e.rows, d, c, f),
_: any = { formula: "SUBTOTAL(" + x.num + "," + i.name + "[" + m.name + "])" };
null != p && (_.value = p);
u.cells[f] = { ...u.cells[f], ..._ };
} else u.cells[f].formula = S;
}
}
}
}
}
};