js分析报表居中

本文分享了一段实用的JavaScript代码,用于实现报表在不同情况下(单个多sheet、冻结与否)的居中显示效果,通过动态调整margin-left值确保报表在页面上美观呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js分析报表居中

因为经常要用,贴上来保存一下:

//判断是否为多sheet
ms = $('.html-content').length;
if (ms != 0){
//多sheet
ff=$(".frozen-table",$('.html-content:visible')).length//判断当前sheet是否有冻结
if (ff == 0) {
//未冻结
var slmargin = ($(".content-container").width()-$(".sheet-container div:first-child",$('.html-content:visible')).width())/2;
if (slmargin > 0) {
$('.sheet-container',$('.html-content:visible')).css('margin-left',slmargin); 
$(".x-table",$('.html-content:visible')).css('left',slmargin);
$(window).resize();
}
}
else {
//冻结
var slmargin=($(".content-container").width()-$('.x-table',$('#frozen-center'),$('.html-content:visible')).width()-$('.x-table',$('#frozen-west'),$('.html-content:visible')).width())/2;
if (slmargin > 0) {
$('.sheet-container',$('.html-content:visible')).css('margin-left',slmargin);
$(window).resize();
}
}
}
else {
//判断当前sheet是否有冻结
ff=$(".frozen-table").length
//单sheet
if (ff == 0) {
//未冻结
slmargin = ($(".content-container").width() - $(".sheet-container div:first-child").width()) /2;
if (slmargin > 0) {
$('.sheet-container').css('margin-left',slmargin); 
$(".x-table").css('left',slmargin);
$(window).resize();
}
}
else {
//冻结
slmargin=($(".content-container").width()-$('.x-table',$('#frozen-center')).width()-$('.x-table',$('#frozen-west')).width())/2;
if (slmargin > 0) {
$('.sheet-container').css('margin-left',slmargin); 
$(window).resize();}
}
}

### 如何在使用 js-xlsx 时实现单元格内容居中 在 `js-xlsx` 中,可以通过扩展库 `xlsx-style` 来支持样式的设置。以下是关于如何通过该库实现单元格文本居中的方法。 #### 使用 xlsx-style 设置单元格文本居中 为了使单元格内的文本居中显示,可以定义一个样式对象,并将其应用到目标单元格上。具体来说,需要配置 `alignment.horizontal` 属性为 `"center"`[^2]。 下面是一个完整的代码示例: ```javascript // 导入必要的模块 import * as XLSX from 'xlsx'; import { writeFileSync } from 'fs'; // 创建一个新的工作簿和工作表 const workbook = XLSX.utils.book_new(); const worksheetData = [ ["姓名", "年龄"], ["张三", 28], ["李四", 30] ]; const worksheet = XLSX.utils.aoa_to_sheet(worksheetData); // 定义居中样式 const centerStyle = { alignment: { horizontal: "center" // 文本水平居中 } }; // 遍历数据并应用样式 worksheet["A1"].s = centerStyle; // 姓名列头部居中 worksheet["B1"].s = centerStyle; // 年龄列头部居中 // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); // 输出 Excel 文件 writeFileSync("output.xlsx", XLSX.write(workbook, { bookType: "xlsx", type: "buffer" })); ``` 上述代码实现了以下功能: - 利用 `XLSX.utils.aoa_to_sheet()` 方法创建了一个二维数组的工作表。 - 定义了名为 `centerStyle` 的样式对象,其中设置了 `horizontal: "center"` 表示水平方向上的居中对齐方式。 - 对指定的单元格(如 A1 和 B1)手动附加样式属性 `.s`,并将样式赋值为其对应的样式对象。 需要注意的是,在原始的 `xlsx` 库中并不支持样式操作,因此必须依赖于其衍生版本之一——`xlsx-style` 才能完成此任务[^3]。 #### 注意事项 当尝试修改已合并区域的内容或者样式时,应特别注意不要单独访问某个子单元格来进行这些更改,因为这可能会导致最终渲染结果不符合预期[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值