table表导出到excel的两种办法

 在web开发中经常需要将页面上的表中的数据导出到excel表,或生成excel表,本人在开发中使用过两种方法:

方法一:
    在客户端使用js脚本,使用window的ActiveX技术,所以仅限用于.net平台,需要在浏览器设置activeX相关的支持,但操作很简单,只需要调用下面这个方法即可。有个缺点是:如果有分页的话,而且使用的是真分页,得到的可能是当前的分页数据。


代码及注释:
<script type="text/javascript" language="javascript">

    function exptoexcel() { 
//指定表的id值 并获取该对象
        var curTbl = document.getElementById("表的id属性值"); 
//新建excel 的ActiveX对象 
        var oXL = new ActiveXObject("Excel.Application");   
//添加一个Workbook 
        var oWB = oXL.Workbooks.Add(); 
//打开一个sheet
        var oSheet = oWB.ActiveSheet; 
//copy curTbl的text到sheet
        var sel = document.body.createTextRange(); 
        sel.moveToElementText(curTbl); 
        sel.select(); 
        sel.execCommand("Copy"); 
        oSheet.Paste();

        oXL.Visible = true;

    } 
</script>


方法二:
    在服务器段写excel数据,作为数据流传到客户端打开或下载,这样的话很灵活,可以编辑标题,excle列名等等,也不收分页的限制,但是要有基本api支持,jxl.jar就是这样一个库,他提供了很多excel操作的api,下面以个实例代码:

代码及注释:
//文件名字
String fileName = "title";
String zbmc = fileName;
//获得 OutputStream 最后把生成的excel通过这个写出   
OutputStream os = resp.getOutputStream();
resp.setContentType("application/ms-excel;charset=gbk");
//httpResponse.reset(); 
//设置头
resp.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8") + ".xls");
    
//标题字体
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.COURIER, 18, WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

//字段字体
jxl.write.WritableFont wfc1 = new jxl.write.WritableFont(WritableFont.COURIER, 10, WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfFC1 = new jxl.write.WritableCellFormat(wfc1);
wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);
wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

//结果字体
jxl.write.WritableCellFormat wcfFC2 = new jxl.write.WritableCellFormat();
wcfFC2.setAlignment(jxl.format.Alignment.CENTRE);
wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

//通过OutputStream对象os创建Workbook
WritableWorkbook wbook = Workbook.createWorkbook(os);
//创建sheet
WritableSheet wsheet = wbook.createSheet("sheet1", 0);

//列名    
String colName = "colum1-colum2-colum3-colum4-colum5-colum6-colum7....";
String[] splitColName = colName.split("-");
int colNum = splitColName.length;
int resSize = result.size();

//加入标题
wsheet.mergeCells(0, 0, colNum - 1, 0); //第一行合并
wsheet.addCell(new Label(0, 0, zbmc, wcfFC));//写标题 看出坐标是基于 0,0

//第一行写入列名
for (int i = 0; i < colNum; i ++)
{
//加入字段名
wsheet.addCell(new jxl.write.Label(i, 1, splitColName[i], wcfFC1));
//System.out.println(splistCharacterName);
}

//加入打印时间
//Date aaa = new Date();
//SimpleDateFormat aSimpleDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//String today = aSimpleDateFormat.format(aaa);
//wsheet.addCell(new Label(colNum - 2, 1, "打印日期:"));
//wsheet.addCell(new Label(colNum - 1, 1, today));

//获取结果
Vector<Hashtable<String,Object>> result =.......;
//下面开始输出结果
for (int j = 0; j < resSize; j ++)
{
// 写数据
}

//写入流中
wbook.write();
wbook.close();
os.close();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
要在Bootstrap Table导出Excel,你可以使用一些插件或库来实现这个功能。以下是使用两个常用的库来导出Excel的方法: 1. 使用TableExport插件: - 首先,在你的HTML页面中引入TableExport插件和相应的依赖文件。 ```html <script src="https://cdn.jsdelivr.net/npm/table[email protected]/dist/js/tableexport.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/xlsx/dist/xlsx.full.min.js"></script> ``` - 然后,在你的Bootstrap Table上添加一个导出按钮,并给它一个唯一的ID。 ```html <button id="export-btn" class="btn btn-primary">导出Excel</button> ``` - 最后,在JavaScript代码中使用TableExport来初始化并绑定导出按钮的点击事件。 ```javascript $(document).ready(function() { $('#export-btn').click(function() { $('#your-table-id').tableExport({ type: 'excel', escape: 'false' }); }); }); ``` 这里的`#your-table-id`是你的Bootstrap Table的ID,你需要将其替换为你实际使用的ID。 2. 使用SheetJS库: - 首先,在你的HTML页面中引入SheetJS库。 ```html <script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script> ``` - 然后,在JavaScript代码中创建一个导出函数,并绑定到一个按钮的点击事件上。 ```javascript function exportToExcel() { var wb = XLSX.utils.table_to_book(document.getElementById('your-table-id')); XLSX.writeFile(wb, 'exported_data.xlsx'); } $(document).ready(function() { $('#export-btn').click(function() { exportToExcel(); }); }); ``` 这里的`#your-table-id`是你的Bootstrap Table的ID,你需要将其替换为你实际使用的ID。 通过以上两种方法之一,你可以将Bootstrap Table导出Excel文件。记得将`#your-table-id`替换为你实际使用的ID,并根据需要修改导出文件的名称和格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值