java代码怎么导出excel文件

java代码怎么导出excel文件,第1张

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包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9446145.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存