package com.java.util;
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/**
* @param args
* @throws Exception
* 以下是通过开源框架jxl实现的一个 解析、创建、修改的例子
*/
public class ExcelParse {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) {
ExcelParse eParse = new ExcelParse();
try {
//String string = eParse.parseXLS("F:\\j\\test.xls");
// eParse.createXLS("f:\\j\\temp.xls");
eParse.modifyXLS("F:\\j\\test.xls");
} catch (Exception e) {
e.printStackTrace() ;
}
}
// 解释EXCEL 并返回Content
@SuppressWarnings("unused")
private String parseXLS(String path) throws Exception {
StringBuffer sb = new StringBuffer(0);
Workbook wk = Workbook.getWorkbook(new File(path));
if (wk == null) return null;
Sheet[] sheet = wk.getSheets(); // 取所有工作表
for (Sheet _sheet : sheet) {
System.out.println("当前工作表名称 :" + _sheet.getName());
int rownum = _sheet.getRows();// 取当前工作表行数
System.out.println("当前工作表行:" + rownum);
for (int i = 0; i < rownum; i++) {
Cell[] cells = _sheet.getRow(i);//取当前row中所有cell
for (Cell cell : cells) {
sb.append(cell.getContents() + " - - - ");
}
sb.append("\n");
}
}
wk.close() ;
return sb.toString();
}
//修改EXCEL
public void modifyXLS(String path)throws Exception{
Workbook wk = Workbook.getWorkbook(new File(path)) ;
WritableWorkbook wwk = Workbook.createWorkbook(new File("f:\\j\\g.xls"), wk);
WritableSheet ws = wwk.getSheet(0);
// 第2行第0列
WritableCell cell = ws.getWritableCell(0,2);
Label lable = (Label) cell;
lable.setString("Fuck you !");
wwk.write();
wwk.close();
wk.close();
}
//创建一个EXCEL
@SuppressWarnings("unused")
private void createXLS(String xlsPath) throws Exception{
WritableWorkbook wwb = Workbook.createWorkbook(new File(xlsPath));
WritableSheet ws = wwb.createSheet("测试", 0); //创建一个可写的sheet
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 6; j++) {
//设置字体
WritableFont wf = new WritableFont(WritableFont.TIMES, 18,
WritableFont.BOLD, true);
//设置颜色
wf= new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, Colour.RED);
WritableCellFormat wcfF = new WritableCellFormat(wf);
Label lable = new Label(j, i, "这是第"+(i)+"行第"+(j)+"列",wcfF);
ws.addCell(lable);
/* //添加图片
WritableImage wiImage = new WritableImage(j, i, 5,
5, new File("f:\\j\\aa.png"));
ws.addImage(wiImage);
*/
/*
添加页眉页脚
HeaderFooter hf = new HeaderFooter();
hf.getLeft().append("left");
hf.getCentre().append("centre");
hf.getRight().append("right");
//加入页眉
ws.getSettings().setHeader(hf);
//加入页脚
//ws.getSettings().setFooter(hf);
*/
}
}
wwb.write() ; //将内存中的数据写入目标
wwb.close() ;
}
}
//以下代码是通过poi框架实现
//导出Excel 列表
public ActionForward printExcel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=\"order.xls\"");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
String order = request.getParameter("order");
HSSFWorkbook wb = this.getHSSFWorkbook(orderMgr.getCommodityByOrderNo(order),order) ;
wb.write(response.getOutputStream());
response.flushBuffer() ;
return null;
}
private HSSFWorkbook getHSSFWorkbook(List<Object[]> list , String order){
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet1");
sheet.setColumnWidth(0,5000) ;
sheet.setColumnWidth(1,7000) ;
sheet.setColumnWidth(2,5000) ;
sheet.setColumnWidth(3,7000) ;
sheet.setColumnWidth(4,5000) ;
// HSSFCellStyle style = wb.createCellStyle();
// style.setAlignment(HSSFCellStyle.ALIGN_CENTER) ;
// style.setFont(font);
HSSFCellStyle pubStyle = wb.createCellStyle() ;
pubStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER) ;
HSSFRow row = sheet.createRow(0);
row.setHeight((short) 400 ) ;
HSSFCell orderNO = row.createCell(0) ;
orderNO.setCellValue("订单号");
orderNO.setCellStyle(pubStyle);
row.createCell(1).setCellValue(order);
HSSFRow rowb = sheet.createRow(1);
HSSFCell ca = rowb.createCell(0);
ca.setCellValue("货号");
ca.setCellStyle(pubStyle);
HSSFCell cb =rowb.createCell(1);
cb.setCellValue("书名");
cb.setCellStyle(pubStyle);
HSSFCell cc = rowb.createCell(2);
cc.setCellValue("报定数量");
cc.setCellStyle(pubStyle);
HSSFCell cd =rowb.createCell(3);
cd.setCellValue("当前架位号");
cd.setCellStyle(pubStyle);
HSSFCell ce = rowb.createCell(4);
ce.setCellValue("当前库存数量");
ce.setCellStyle(pubStyle);
for (int i = 0; i < list.size(); i++)
{
Object[] obj = list.get(i) ;
HSSFRow tmpR = sheet.createRow(i+2);
HSSFCell plucode =tmpR.createCell(0);
plucode.setCellValue(obj[0].toString());
plucode.setCellStyle(pubStyle);
HSSFCell bookName = tmpR.createCell(1);
bookName.setCellValue(obj[1].toString());
bookName.setCellStyle(pubStyle);
HSSFCell buyCount = tmpR.createCell(2);
buyCount.setCellValue(obj[2].toString());
buyCount.setCellStyle(pubStyle);
HSSFCell point = tmpR.createCell(3);
point.setCellValue(obj[3].toString());
point.setCellStyle(pubStyle);
HSSFCell discount=tmpR.createCell(4);
discount.setCellValue(obj[4].toString());
discount.setCellStyle(pubStyle);
}
return wb ;
}
分享到:
相关推荐
在java web系统应用中我们经常会用到大批量数据的导出,动辄就上几十万几百万的数据让我们的程序感觉...java中使用poi导出Excel大批量数据到客户端 存在两个导出方法:存在一个分批量导出ZIP文件,一个导出exel文件
本文将详细讲解如何实现“将Web页面中的数据导出到Excel并自动打印”的技术流程。 首先,我们需要理解Web页面数据导出到Excel的基本原理。通常,这涉及到JavaScript或服务器端语言(如Python、Java、PHP等)的配合...
在IT行业中,Web应用经常需要提供数据导出功能,尤其是将数据导出为Excel格式,以便用户进行数据分析或存储。本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是...
下面将详细阐述LODOP、Excel导出以及JavaScript在其中的作用。 首先,LODOP是“云打印”技术的一种实现,由上海杰普软件科技有限公司开发。它是一款轻量级的打印控件,主要用在浏览器环境中,用于解决网页打印的...
另外,客户端导出可能受到浏览器的安全限制,例如跨域请求(CORS)和同源策略。确保你的应用符合这些规则,以避免导出失败。 总结来说,Highcharts客户端导出是一种高效且用户友好的特性,允许用户在本地浏览器中...
本文将深入探讨一个纯前端解决方案——Luckysheet,它允许用户在浏览器中直接编辑Excel,并实现文件的导入导出功能。 首先,我们要理解什么是Luckysheet。Luckysheet是一款基于JavaScript的开源项目,它提供了一个...
在Web项目中,通常会将导出功能封装为一个服务或控制器方法,接收到请求后执行数据查询和Excel创建,然后将`Workbook`对象转换为字节数组,通过HTTP响应返回给客户端,通常设置`Content-Type`为`application/vnd.ms-...
在许多情况下,由于安全性和性能原因,直接在客户端生成Excel文件可能不是最佳选择。这时,可以使用jQuery发送Ajax请求到服务器,服务器端(例如使用PHP、Python或Node.js)生成Excel文件,然后返回文件下载链接。...
在这个案例中,Apache POI用于创建和编辑Excel工作簿、工作表以及单元格,从而实现从Web应用导出数据到Excel的功能。 2. **Excel样式设置**: 文件描述中提到,生成的Excel文件包含各种样式,如标题的字体大小、...
2. **编写Action**:创建一个Struts2 Action类,包含一个方法用于导出数据到Excel,另一个方法用于处理Excel导入。导出时,从Oracle查询数据,然后使用POI创建Excel工作簿和工作表,将数据填充到单元格中。导入时,...
- **Action**:处理用户的导出请求,调用Service层的方法,将数据转换为Excel格式并返回给客户端。 - **Service**:实际导出Excel的逻辑实现,可能包括处理中文乱码问题,创建并填充Excel文件的I/O流操作。 - **...
在标题“asp.net 导出数据与图片到excel”和描述中提到的,是关于如何在ASP.NET环境下将数据和图片导出到Excel文件的一个主题。这是一个常见的需求,尤其是在数据分析、报表生成或数据共享时。以下是一些相关的知识...
2. **Excel导出**:用户在Web应用中选择要导出的数据,服务器生成一个Excel文件并提供下载链接。这个过程包括: - SQL查询:根据用户的选择,服务器执行SQL查询,获取所需的数据。 - 数据格式化:将查询结果转化为...
这种方法是通过创建一个内存流,将数据以Table的格式写入,然后直接下载到客户端。这种方式可以生成任意复杂的Excel文件,且页面无刷新。例如,使用OpenXML SDK,可以创建xlsx文件,控制单元格样式、合并单元格、...
3. **Excel导出**: - 创建新的工作簿和工作表对象,然后在这些对象上创建单元格并填充数据。 - 可以设置单元格的样式,如字体、颜色、边框等,以满足格式化需求。 - 完成数据填充后,将工作簿写入到文件流中,...
- 使用`window.open()`函数配合`data:`协议可以创建一个新的浏览器窗口并写入CSV内容,从而实现无插件的Excel导出。 3. **C#与JavaScript协作的步骤** - **前端**:用户点击导出按钮,JavaScript收集列表数据,...
3. **流式导出**:针对大数据,可以使用流式写入的方式生成Excel文件,如Node.js的`xlsx-stream`库,这样可以一边生成一边发送到客户端,减少内存占用。 4. **优化导出格式**:为了提高导出速度,可以选择导出CSV或...
总结来说,将Web页面中的数据导出到Excel涉及前端的数据获取、转换、文件创建和下载触发等多个环节。通过使用合适的JavaScript库和遵循良好的编程实践,我们可以为用户提供便捷的数据导出功能,从而提升Web应用的...
ExtJS,作为一种强大的前端框架,能够帮助开发者构建复杂的Web应用程序,其在实现Excel导出方面的解决方案也备受关注。 #### 极致解析:ExtJS中的Excel导出机制 **1. 概念理解** ExtJS是一种基于客户端的AJAX应用...
这涉及到多个技术点,包括前端触发导出操作、后端处理数据并生成Excel文件等。本文将详细介绍这些关键技术。 #### 二、依赖库介绍 为了实现Web页面数据导出至Excel的功能,通常会用到Apache POI库。POI是一个用于...