import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.Calendar; import java.util.Date; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.VerticalAlignment; import jxl.write.DateFormats; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.Number; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableImage; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class jxlPicToExcel { public void CreateExcel(OutputStream os) throws IOException, RowsExceededException, WriteException { //创建工作簿 WritableWorkbook workbook= Workbook.createWorkbook(os); //创建一页 WritableSheet sheet= workbook.createSheet("第一页", 0); //构造表头 sheet.mergeCells(0, 0, 4, 0);//起始列,起始行,终止列,终止行 WritableFont bold=new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD); WritableCellFormat titleFormat=new WritableCellFormat(bold); titleFormat.setAlignment(Alignment.CENTRE); titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE); Label title=new Label(0,0,"测试标题",titleFormat); sheet.setRowView(0, 600,false); sheet.addCell(title); //Label第一个参数表示列,第二个参数表示行 Label xuexiao=new Label(0,1,"学校"); sheet.addCell(xuexiao); Label zhuanye=new Label(1,1,"专业"); sheet.addCell(zhuanye); Label riqi=new Label(2,1,"入学日期"); sheet.addCell(riqi); Label chengji=new Label(3,1,"成绩"); sheet.addCell(chengji); Label qinghua=new Label(0,2,"清华"); sheet.addCell(qinghua); Label jsj=new Label(1,2,"计算机"); sheet.addCell(jsj); Number number=new Number(2,2,55.22); sheet.addCell(number); //日期 Calendar c=Calendar.getInstance(); Date date=c.getTime(); WritableCellFormat cf1=new WritableCellFormat(DateFormats.FORMAT1); DateTime dt=new DateTime(3,2,date,cf1); sheet.addCell(dt); //图片 WritableImage ri=new WritableImage(0,5,5,5,new File("c:/login_main.png")); sheet.addImage(ri); //写到输出流中 workbook.write(); workbook.close(); os.close(); } } 下面是jsp 代码: <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ page import="java.io.*"%> <%@ page import="jxl.test.*" %> <%@ page import="java.net.URLEncoder"%> <% String name="专业试试"; OutputStream os=response.getOutputStream();//取得输出流 response.reset();//清空输出流 //对中文文件名处理 response.setCharacterEncoding("utf-8"); name=URLEncoder.encode(name,"utf-8"); response.setHeader( "Content-Disposition", "attachment;filename=" + new String( name.getBytes("utf-8"), "gbk" )+".xls" ); response.setContentType("application/msexcel"); jxl j=new jxl(); j.CreateExcel(os); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>Insert title here</title> </head> <body> </body> </html> 主要是利用了WritableImage ,更强大的功能大家参照下jxl相关api啦。