我所用的是POI可在www.apace.org上下载
下面是代码
package
com.javawebdemo.struts.common.excel;
import
java.io.ByteArrayOutputStream;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.net.URLEncoder;
import
java.util.ArrayList;
import
java.util.List;
import
javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletResponse;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
import
org.apache.poi.hssf.usermodel.HSSFCell;
import
org.apache.poi.hssf.usermodel.HSSFRow;
import
org.apache.poi.hssf.usermodel.HSSFSheet;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook;
import
org.apache.poi.poifs.filesystem.POIFSFileSystem;
import
com.javawebdemo.struts.exception.AppException;

public
class
MakeExcelByPoi
...
{
private String readFilePath = "E:/Test/Test.xls";
private Log log = LogFactory.getLog(this.getClass().getName());
private HSSFWorkbook wb = null;
private POIFSFileSystem fs = null;
private HSSFSheet sheet = null;
private String CONTENT_TYPE = "application/vnd.ms-excel";
private String creatorName = "";
private String createdDate = "";
private String errorMessage = "";
private List listBean = null;

public MakeExcelByPoi() ...{
}
public MakeExcelByPoi(String _creatorName, String _createdDate,
List _listBean) ...{
this.creatorName = _creatorName;
this.createdDate = _createdDate;
this.listBean = _listBean;
}

public String getCreatorName() ...{
return this.creatorName;
}

public String getCreatedDate() ...{
return this.createdDate;
}

public List getListBean() ...{
return this.listBean;
}

public String getMessage() ...{
return this.errorMessage;
}

public void setCreatorName(String _creatorName) ...{
this.creatorName = _creatorName;
}

public void setCreatedDate(String _createdDate) ...{
this.createdDate = _createdDate;
}

public void setListBean(List _listBean) ...{
this.listBean = _listBean;
}

public void setMessage(String _errorMessage) ...{
this.errorMessage = _errorMessage;
}

public void execute(HttpServletResponse response) throws AppException ...{
log.info("execute is begin");
try ...{
fs = new POIFSFileSystem(new FileInputStream(this.readFilePath));
wb = new HSSFWorkbook(fs);
sheet = wb.getSheetAt(0);
writeAutoCells();
writeManualCells();
response.setContentType(CONTENT_TYPE);
// response.setHeader("Content-Disposition",
// "inline; filename=tempXls.xls");
String fileName = URLEncoder.encode("用户表.xls", "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename = "+fileName);
ServletOutputStream out = response.getOutputStream();
ByteArrayOutputStream Byteout = new ByteArrayOutputStream();
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
wb.write(Byteout);
response.setContentLength(Byteout.size());
Byteout.writeTo(out);
out.flush();
log.debug("execute is executed");
} catch (Exception ex) ...{
log.info(ex.toString());
// throw new AppException();
//throws ex;
} finally...{
}
}

public void writeAutoCells() ...{
try ...{
setCellValue(3, 5, this.getCreatorName());
setCellValue(4, 5, this.getCreatedDate());
} catch (Exception ex) ...{
System.out.println(ex.toString());
}
}

public void writeManualCells() ...{
try ...{
for (int j = 0; j < listBean.size(); j++) ...{
TestBean temBean = (TestBean) listBean.get(j);
setCellValue(j + 7, 0, temBean.getTitle());
setCellValue(j + 7, 1, temBean.getTypeName());
setCellValue(j + 7, 2, temBean.getPlaceName());
setCellValue(j + 7, 3, temBean.getDate());
setCellValue(j + 7, 4, temBean.getStartTime());
setCellValue(j + 7, 5, temBean.getEndTime());
}
} catch (Exception ex) ...{
System.out.println(ex.toString());
}
}

private void setCellValue(int row, int line, String value) ...{
HSSFRow rows = sheet.getRow(row);
if (rows == null) ...{
rows = sheet.createRow(row);
}
HSSFCell cell = rows.getCell((short) line);
if (cell == null) ...{
cell = rows.createCell((short) line);
}
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(value);
}

private void executeTest() ...{
try ...{
fs = new POIFSFileSystem(new FileInputStream(this.readFilePath));
wb = new HSSFWorkbook(fs);
sheet = wb.getSheetAt(0);
writeAutoCells();
writeManualCells();
FileOutputStream fileOut = new FileOutputStream("c:/workbook.xls");
wb.write(fileOut);
fileOut.close();
} catch (Exception ex) ...{
System.out.println(ex.toString());
}
}

public static void main(String[] args) throws Exception ...{
MakeExcelByPoi printM = new MakeExcelByPoi();
printM.setCreatorName("LZT");
printM.setCreatedDate("2006/08/23");
List List = new ArrayList();
for (int j = 0; j < 3; j++) ...{
TestBean temList = new TestBean();
temList.setTitle("This is a Test !");
temList.setTypeName("titleData");
temList.setPlaceName("cnTypeNameData");
temList.setDate("cnStageNameData");
temList.setStartTime("");
temList.setEndTime("");
List.add(temList);
}
printM.setListBean(List);
printM.executeTest();
}
}
package
com.javawebdemo.struts.common.excel;

public
class
TestBean
...
{
private int id;
private int type_id;
private String title;
private String date;
private String startHour;
private String endHour;
private String startMinute;
private String endMinute;
private int placeId;
private String note;
private int isImportant;
private int isOutCompany;
private long topic_id;
private String startPoint;
private String endPoint;
private String deleteUrl;
private String typeName;
private String placeName;
private String view;
private String save_MainDate;
private String save_SideDate;
private String startTime;
private String endTime;
public int getId()...{
return id;
}

public int getType_id()...{
return type_id;
}

public String getTitle()...{
return title;
}

public String getDate()...{
return date;
}

public String getStartHour()...{
return startHour;
}

public String getEndHour()...{
return endHour;
}

public String getStartMinute()...{
return startMinute;
}

public String getEndMinute()...{
return endMinute;
}

public int getPlaceId()...{
return placeId;
}

public String getNote()...{
return note;
}

public int getIsImportant()...{
return isImportant;
}

public int getIsOutCompany()...{
return isOutCompany;
}

public long getTopic_id()...{
return topic_id;
}
public String getStartPoint()...{
return startPoint;
}
public String getEndPoint()...{
return endPoint;
}
public String getTypeName()...{
return typeName;
}
public String getPlaceName()...{
return placeName;
}
public String getView()...{
return view;
}
public String getSave_MainDate()...{
return save_MainDate;
}
public String getSave_SainDate()...{
return save_SideDate;
}
public String getStartTime()...{
return startTime;
}
public String getEndTime()...{
return endTime;
}

public void setEndTime(String _endTime)...{
this.endTime = _endTime;
}
public void setStartTime(String _startTime)...{
this.startTime = _startTime;
}
public void setSave_SideDate(String _save_SideDate)...{
this.save_SideDate=_save_SideDate;
}
public void setSave_MainDate(String _save_MainDate)...{
this.save_MainDate=_save_MainDate;
}
public void setView(String _view)...{
this.view=_view;
}
public void setTypeName(String _typeName)...{
this.typeName=_typeName;
}
public void setPlaceName(String _placeName)...{
this.placeName=_placeName;
}
public void setStartPoint(String _startPoint)...{
this.startPoint=_startPoint;
}
public void setEndPoint(String _endPoint)...{
this.endPoint=_endPoint;
}
public void setId(int _id)...{
this.id = _id;
}

public void setType_id(int _type_id)...{
this.type_id = _type_id;
}

public void setTitle(String _title)...{
this.title = _title;
}

public void setDate(String _date)...{
this.date = _date;
}

public void setStartHour(String _startHour)...{
this.startHour = _startHour;
}

public void setEndHour(String _endHour)...{
this.endHour = _endHour;
}

public void setStartMinute(String _startMinute)...{
this.startMinute=_startMinute;
}

public void setEndMinute(String _endMinute)...{
this.endMinute=_endMinute;
}

public void setPlaceId(int _placeId)...{
this.placeId = _placeId;
}

public void setNote(String _note)...{
this.note = _note;
}

public void setIsImportant(int _isImportant)...{
this.isImportant = _isImportant;
}

public void setIsOutCompany(int _isOutCompany)...{
this.isOutCompany = _isOutCompany;
}

public void setTopic_id(long _topic_id)...{
this.topic_id = _topic_id;
}


public void setDeleteUrl(String deleteUrl)
...{
this.deleteUrl = deleteUrl;
}
public String getDeleteUrl()
...{
return deleteUrl;
}

}
本文介绍了一种利用Java的Apache POI库来创建和修改Excel文件的方法。具体包括如何设置单元格值、处理字符串编码及通过HTTP响应将Excel文件返回给用户的过程。
242

被折叠的 条评论
为什么被折叠?



