
excel工具类
package comohdieproductaction;
import javaawtimageBufferedImage;
import javaio;
import javaximageioImageIO;
import orgapachecommonsiooutputByteArrayOutputStream;
import jxlWorkbook;
import jxlformatAlignment;
import jxlformatVerticalAlignment;
import jxlwrite;
import jxlwriteNumber;
import jxlwritebiffRowsExceededException;
public class Excel {
private OutputStream os;
private WritableWorkbook wwb = null;
private WritableSheet ws = null;
private WritableCellFormat titleCellFormat = null;
private WritableCellFormat noBorderCellFormat = null;
private WritableCellFormat hasBorderCellFormat = null;
private WritableCellFormat hasBorderCellNumberFormat = null;
private WritableCellFormat hasBorderCellNumberFormat2 = null;
private WritableImage writableImage=null;
private int r;
public Excel(OutputStream os){
thisos = os;
r = -1;
try {
wwb = WorkbookcreateWorkbook(os);
//创建工作表
ws = wwbcreateSheet("sheet1",0);
//设置表头字体,大小,加粗
titleCellFormat = new WritableCellFormat();
titleCellFormatsetAlignment(AlignmentCENTRE);
titleCellFormatsetVerticalAlignment(VerticalAlignmentCENTRE);
//自动换行
titleCellFormatsetWrap(true);
titleCellFormatsetFont(new WritableFont(WritableFontcreateFont("宋体"),12,WritableFontBOLD));
titleCellFormatsetBorder(jxlformatBorderALL, jxlformatBorderLineStyleTHIN);
//设置表格字体,大小----无边框
noBorderCellFormat = new WritableCellFormat();
noBorderCellFormatsetAlignment(AlignmentCENTRE);
noBorderCellFormatsetVerticalAlignment(VerticalAlignmentCENTRE);
noBorderCellFormatsetFont(new WritableFont(WritableFontcreateFont("宋体"),12));
//设置表格字体,大小----有边框
hasBorderCellFormat = new WritableCellFormat();
hasBorderCellFormatsetAlignment(AlignmentCENTRE);
hasBorderCellFormatsetVerticalAlignment(VerticalAlignmentCENTRE);
hasBorderCellFormatsetFont(new WritableFont(WritableFontcreateFont("宋体"),12));
hasBorderCellFormatsetBorder(jxlformatBorderALL, jxlformatBorderLineStyleTHIN);
//设置表格字体,大小----有边框(小数)
NumberFormat nf = new NumberFormat("#000");
hasBorderCellNumberFormat = new WritableCellFormat(nf);
hasBorderCellNumberFormatsetAlignment(AlignmentCENTRE);
hasBorderCellNumberFormatsetVerticalAlignment(VerticalAlignmentCENTRE);
hasBorderCellNumberFormatsetFont(new WritableFont(WritableFontcreateFont("宋体"),12));
hasBorderCellNumberFormatsetBorder(jxlformatBorderALL, jxlformatBorderLineStyleTHIN);
//设置表格字体,大小----有边框(整数)
NumberFormat nf2 = new NumberFormat("#0");
hasBorderCellNumberFormat2 = new WritableCellFormat(nf2);
hasBorderCellNumberFormat2setAlignment(AlignmentCENTRE);
hasBorderCellNumberFormat2setVerticalAlignment(VerticalAlignmentCENTRE);
hasBorderCellNumberFormat2setFont(new WritableFont(WritableFontcreateFont("宋体"),12));
hasBorderCellNumberFormat2setBorder(jxlformatBorderALL, jxlformatBorderLineStyleTHIN);
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
/
@param content 内容
@param c 列
@param style 样式
@param isNewLine 是否换行
@param mergeType 合并类型
@param mergeCount 合并个数
@param width 单元格宽
/
public void setExcelCell(String content,int c,int style,boolean isNewLine,int mergeType,int mergeCount,int width){
try {
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////报表内容////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
if(isNewLine){
r++;
}
WritableCell l = null;
if(style == 1){
l = new Label(c,r,content,titleCellFormat);
}
else if(style == 2){
l = new Label(c,r,content,noBorderCellFormat);
}
else if(style == 3){
l = new Label(c,r,content,hasBorderCellFormat);
}
else if(style == 4){
l = new Number(c,r,DoubleparseDouble(content),hasBorderCellNumberFormat);
}
else if(style == 5){
l = new Number(c,r,IntegerparseInt(content),hasBorderCellNumberFormat2);
}
wsaddCell(l);
if(width != 0){
wssetColumnView(c,width);
}
//veryhuo,com
if(mergeType == 1){
//x 轴方向
wsmergeCells(c, r, c+mergeCount-1 , r);
}
else if(mergeType == 2){
//y 轴方向
wsmergeCells(c, r, c, r+mergeCount-1);
}
if(isNewLine){
wssetRowView(r, 350);
if(style == 1 && r != 0){
wssetRowView(r, 900);
}
else{
wssetRowView(r, 350);
}
}
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
} catch (Exception e) {
Systemoutprintln(etoString());
}
}
public void setExcelCellEx(String content,int c,int style,boolean isNewLine,int mergeType,int mergeCount,int width,int row){
try {
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////报表内容////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
if(isNewLine){
r++;
}
WritableCell l = null;
if(style == 1){
l = new Label(c,r,content,titleCellFormat);
}
else if(style == 2){
l = new Label(c,r,content,noBorderCellFormat);
}
else if(style == 3){
if(contentindexOf("jpg")!=-1 ||contentindexOf("JPG")!=-1){
File outputFile=null;
File imgFile =new File(content);
if(imgFileexists()&&imgFilelength()>0){
BufferedImage input=null;
try {
input = ImageIOread(imgFile);
} catch (Exception e) {
eprintStackTrace();
}
if(input!=null){
String path=imgFilegetAbsolutePath();
outputFile = new File(pathsubstring(0,pathlastIndexOf('')+1)+"png");
ImageIOwrite(input, "PNG", outputFile);
if(outputFileexists()&&outputFilelength()>0){
wssetRowView(row,2000);
//wssetColumnView(8, 10);
writableImage = new WritableImage(c+01, row+01, 08, 08, outputFile);
wsaddImage(writableImage);
l = new Label(c,r,"",hasBorderCellFormat);
}
}
}
}else{
l = new Label(c,r,content,hasBorderCellFormat);
}
}
else if(style == 4){
l = new Number(c,r,DoubleparseDouble(content),hasBorderCellNumberFormat);
}
else if(style == 5){
l = new Number(c,r,IntegerparseInt(content),hasBorderCellNumberFormat2);
}
wsaddCell(l);
if(width != 0){
wssetColumnView(c,width);
}
if(mergeType == 1){
//x 轴方向
wsmergeCells(c, r, c+mergeCount-1 , r);
}
else if(mergeType == 2){
//y 轴方向
wsmergeCells(c, r, c, r+mergeCount-1);
}
if(isNewLine){
wssetRowView(r, 350);
if(style == 1 && r != 0){
wssetRowView(r, 900);
}
else{
wssetRowView(r, 350);
}
}
} catch (Exception e) {
Systemoutprintln(etoString());
}
}
public void setRowHeight(int val){
try {
wssetRowView(r, val);
} catch (RowsExceededException e) {
eprintStackTrace();
}
}
public void getExcelResult(){
try {
wwbwrite();
} catch (Exception e) {
Systemoutprintln(etoString());
}
finally{
if(wwb != null){
try {
wwbclose();
if(os != null){
osclose();
}
} catch (WriteException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
}
}
}
}
需要的jar包:jxljar
public String downModel(>
java导出Excel需要用到poi的jar包,
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wbcreateSheet("学生表一");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheetcreateRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wbcreateCellStyle();
stylesetAlignment(HSSFCellStyleALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = rowcreateCell((short) 0);
cellsetCellValue("学号");
cellsetCellStyle(style);
cell = rowcreateCell((short) 1);
cellsetCellValue("姓名");
cellsetCellStyle(style);
cell = rowcreateCell((short) 2);
cellsetCellValue("年龄");
cellsetCellStyle(style);
cell = rowcreateCell((short) 3);
cellsetCellValue("生日");
cellsetCellStyle(style);
// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
List list = CreateSimpleExcelToDiskgetStudent();
for (int i = 0; i < listsize(); i++)
{
row = sheetcreateRow((int) i + 1);
Student stu = (Student) listget(i);
// 第四步,创建单元格,并设置值
rowcreateCell((short) 0)setCellValue((double) stugetId());
rowcreateCell((short) 1)setCellValue(stugetName());
rowcreateCell((short) 2)setCellValue((double) stugetAge());
cell = rowcreateCell((short) 3);
cellsetCellValue(new SimpleDateFormat("yyyy-mm-dd")format(stu
getBirth()));
}
// 第六步,将文件存到指定位置
try
{
FileOutputStream fout = new FileOutputStream("E:/studentsxls");
wbwrite(fout);
foutclose();
}
catch (Exception e)
{
eprintStackTrace();
}
}
微软的OFFICE是最为流行的办公软件,主要有OFFICE2010和OFFICE2007两个版本。Office 2000是第三代办公处理软件的代表产品,可以作为办公和管理的平台,以提高使用者的工作效率和决策能力。Office 2000中文版有4种不同的版本:标准版、中小企业版、中文专业版和企业版。
在Office 2000中各个组件仍有着比较明确的分工:一般说来,Word主要用来进行文本的输入、编辑、排版、打印等工作;Excel主要用来进行有繁重计算任务的预算、财务、数据汇总等工作;PowerPoint主要用来制作演示文稿和幻灯片及投影片等;Access是一个桌面数据库系统及数据库应用程序;Outlook是一个桌面信息管理的应用程序;FrontPage主要用来制作和发布因特网的Web页面。
Microsoft Office XP是微软有史以来所发行的Office版本中最重要的版本,而且也被认为是迄今为止功能最强大、最易于使用的Office产品。新版Office放弃了以往以产品发布年命名的惯例!产品名称中的XP,是英文Experience(体验)的缩写,代表着新版Office在包容覆盖广泛设备的Web服务之后,将给用户带来丰富的、充分扩展的全新体验。
除核心的 Office XP 程序 — Microsoft Word、Excel、Outlook和 PowerPoint— 外,Office XP 专业版 中包含 Microsoft Access 2002,它是 Office XP 数据库解决方案,可帮助用户存储、访问和分析数据。
导出Excle有3种方法,
第一是使用POI组件 *** 作Excle
第二是使用JXL组件 *** 作Excle
第三是最简单的,静态生成Excle
推荐第3中。不用话时间去学习
下面是静态生成Excle具体实现:
在你 indexjsp中写脚本函数:
<script type="text/javascript">
function saveToExcel(tableId,fileName){
var table = documentgetElementById(tableId);
ToExceltableContentvalue = tableouterHTML;
if(fileName==null){fileName = "export";}
ToExcelfileNamevalue = fileName;
ToExcelsubmit();
}
</script>
写一个form
<form name="ToExcel" id="ToExcel" method="post" action="createExceljsp" target="_blank">
<input type="hidden" name="tableContent" value="" readonly/>
<input type="hidden" name="fileName" value="" readonly/>
</form>
写一个链接
<a href="javascript:saveToExcel('ec_table','equipmentxls')">导出数据</a>
再创建一个jsp页面createExceljsp
以下是页面内容
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%!
private String encode(String str){
String nStr = "";
try{
nStr = new String(strgetBytes("ISO-8859-1"),"UTF-8");
}catch(Exception e){
}
return nStr;
}
%>
<%
requestsetCharacterEncoding("UTF-8");
responsesetContentType("application/vndms-excel; charset=UTF-8");
String path=requestgetContextPath();
String tableContent = requestgetParameter("tableContent");
String fileName = encode(requestgetParameter("fileName"));
responsesetHeader("Content-disposition", "inline; filename=" +fileName);
%>
<html>
<head>
<meta >
以上就是关于java代码怎么导出excel文件全部的内容,包括:java代码怎么导出excel文件、java导出excel、javaweb 导出excel需要哪些jar包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)