这个是写的测试类 不是java web 项目
public static void main(String[] args){
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
String[] names={"编号","年龄","姓名"} ;
String[] cons={"id","age","name"} ;
for (int i = 0; i < 5; i++) {
Map<String,Object> map = new HashMap<String, Object>();
map.put("id", i);
map.put("age",i);
map.put("name", "悟空"+i);
list.add(map);
}
exportExcelByMap("D:\\","西游记1.xls", "ss", names, cons, list);
}
这里 D:\\ 生成的文件是放在 D盘下
下面是生成文件的方法
/**
* @param fileName 保存文件名称
* @param saveFilePath 保存文件路径
* @param sheetName sheet名字
* @param headers 列表标题
* @param contents 读取列表属性
* @param dataset 数据内容
* @param pattern 时间格式
*/
public static void exportExcelByMap(String saveFilePath,String fileName,String sheetName,String[] headers,
String[] contents,List<Map<String,Object>> dataset){
// 声明一个工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = workbook.createSheet(sheetName);
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth(15);
// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
// 生成并设置另一个样式
HSSFCellStyle style2 = workbook.createCellStyle();
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 产生表格标题行
//获取内容的键值contents转化成小写
for (int n=0;n<contents.length;n++) {
contents[n]=contents[n].toLowerCase();
}
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < headers.length; i++)
{
HSSFCell cell = row.createCell(i);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
if(dataset!=null && !dataset.isEmpty()){
// 遍历集合数据,产生数据行
for (int i = 0; i <dataset.size(); i++) {
row = sheet.createRow(i+1);
int fieldLength=contents.length;
Map<String,Object> map=dataset.get(i);
for (int j = 0; j < fieldLength; j++) {
Object value= map.get(contents[j]);
HSSFCell cell = row.createCell(j);
cell.setCellStyle(style2);
try {
// 判断值的类型后进行强制类型转换
String textValue = null;
if (value instanceof Boolean)
{
boolean bValue = (Boolean) value;
textValue = "1";
if (!bValue)
{
textValue = "0";
}
}else if (value instanceof Date){
Date date = (Date) value;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
textValue = sdf.format(date);
}else{
if(value!=null){
// 其它数据类型都当作字符串简单处理
textValue = value.toString();
}else{
textValue ="";
}
}
// 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成
if (textValue != null){
Pattern p = Pattern.compile("^//d+(//.//d+)?$");
Matcher matcher = p.matcher(textValue);
if (matcher.matches()){
// 是数字当作double处理
cell.setCellValue(Double.parseDouble(textValue));
}else{
HSSFRichTextString richString = new HSSFRichTextString(textValue);
cell.setCellValue(richString);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
FileOutputStream fos = null;
try{
File f = new File(saveFilePath);
if(!f.exists()){
f.mkdirs();
}
fos = new FileOutputStream(new File(saveFilePath+fileName));
workbook.write(fos);
}catch (IOException e){
e.printStackTrace();
}finally{
try {
if(fos != null)fos.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
java web 项目 源码和jar文件下载 http://download.csdn.net/detail/qq_27292113/9742580
如果你建的是web 项目 servlet-api.jar 这个包可以不引用 因为web项目一般在tomcat的lib目录下会自带这个jar包