You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带格式的HTML表格薪资报表(Payroll)导出为Excel文件?

HTML工资单(Payroll)导出为Excel的实现方案

前端纯JavaScript方案

用SheetJS(xlsx.js)库可直接在浏览器内完成HTML表格到Excel的转换,无需后端支持:

  1. 引入xlsx核心库(可下载本地文件或用项目包管理工具安装)
  2. 核心代码示例:
// 获取页面中的工资单表格元素
const payrollTable = document.getElementById('payroll-table');
// 将HTML表格转换为Excel工作簿对象
const workbook = XLSX.utils.table_to_book(payrollTable, {sheet: '工资单'});
// 导出为xlsx文件
XLSX.writeFile(workbook, '当月工资单.xlsx');

若需保留合并单元格、基础样式,可添加配置参数cellStyles: true优化转换效果。

后端服务端处理方案

适合批量处理、复杂格式定制的场景:

Python 实现

借助pandas库快速解析HTML并导出:

import pandas as pd

# 读取HTML文件中的表格数据(支持本地文件或网页链接)
table_list = pd.read_html('payroll.html')
# 取第一个表格作为工资单数据
payroll_data = table_list[0]
# 导出为Excel文件,忽略索引列
payroll_data.to_excel('当月工资单.xlsx', index=False, sheet_name='工资单')

如需定制单元格样式、合并规则,可配合openpyxl库扩展功能。

Java 实现

用Apache POI库完成HTML到Excel的转换:

  1. 引入POI相关依赖(poi、poi-ooxml)
  2. 核心逻辑示例:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class PayrollConverter {
    public static void main(String[] args) throws IOException {
        // 解析HTML文件
        Document doc = Jsoup.parse(new FileInputStream("payroll.html"), "UTF-8", "");
        Elements tableRows = doc.select("table tr");
        
        // 创建Excel工作簿和工作表
        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet("工资单");
        
        // 逐行逐列填充数据
        int rowIndex = 0;
        for (Element row : tableRows) {
            XSSFRow excelRow = sheet.createRow(rowIndex++);
            Elements cells = row.select("td, th");
            int cellIndex = 0;
            for (Element cell : cells) {
                XSSFCell excelCell = excelRow.createCell(cellIndex++);
                excelCell.setCellValue(cell.text());
            }
        }
        
        // 写入文件
        FileOutputStream fos = new FileOutputStream("当月工资单.xlsx");
        workbook.write(fos);
        workbook.close();
        fos.close();
    }
}

桌面工具批量转换方案

无需编码,适合临时或批量处理场景:

  • Excel自带功能:打开Excel后,通过「数据」→「自文件」选择HTML文件,导入后直接保存为xlsx格式。
  • LibreOffice命令行转换:适合大量文件批量处理,执行命令:
libreoffice --headless --convert-to xlsx payroll.html

执行后会在同目录生成对应的xlsx文件。

内容的提问来源于stack exchange,提问作者SESENGDAWEBDEBELOPER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:15:44