table表导出到excel的两种办法
来源:互联网 发布:linux根文件系统详解 编辑:程序博客网 时间:2024/06/05 16:28
在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();
- table表导出到excel的两种办法
- 导出HTML的Table到Excel中
- 导出到excel多sheet的两种方法
- table数据导出到excel
- js导出table到Excel
- table导出到excel中
- 完整的asp.net 导出table到Excel中
- 导出HTML的Table到Excel中(转载)
- java实现web的table导出到excel的3种方法分析
- js javascript 导出table表中数据到Excel中
- 用js导出页面table到excel表中
- JS 将Table数据导出到Excel表
- js 三种方式 从Table导出到 Excel
- 把TABLE中内容导出到EXCEL
- javascript 导出html table到 excel(转载)
- 导出网页中的table到excel
- [JSP]导出网页中的table到excel
- 导出ADF Table内容到Excel
- cocos2d-x中的碰撞检测
- tp link路由器登录不了管理界面怎么办
- WIFI宝——见证人生巅峰使者
- 中科院王斌信息检索试题2013.12
- post-gis
- table表导出到excel的两种办法
- Emmet高效开发web前端代码
- 快乐一。点。吧,极品笑话!!
- linux 和 android 默认支持的部分 usb 网卡芯片
- 感觉用路由器上网变慢怎么办
- HTML 笔记
- B. Sereja and Stairs
- Java 数据库连接字符串
- centos设置静态IP