java 导出excel表格

这个是写的测试类 不是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包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java导出Excel表格的示例代码: ```java import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExportExcelExample { public static void main(String[] args) { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建表头 Row headerRow = sheet.createRow(0); Cell headerCell1 = headerRow.createCell(0); headerCell1.setCellValue("姓名"); Cell headerCell2 = headerRow.createCell(1); headerCell2.setCellValue("年龄"); Cell headerCell3 = headerRow.createCell(2); headerCell3.setCellValue("性别"); // 填充数据 List<Person> personList = new ArrayList<>(); personList.add(new Person("张三", 20, "男")); personList.add(new Person("李四", 25, "女")); personList.add(new Person("王五", 30, "男")); int rowIndex = 1; for (Person person : personList) { Row dataRow = sheet.createRow(rowIndex++); Cell dataCell1 = dataRow.createCell(0); dataCell1.setCellValue(person.getName()); Cell dataCell2 = dataRow.createCell(1); dataCell2.setCellValue(person.getAge()); Cell dataCell3 = dataRow.createCell(2); dataCell3.setCellValue(person.getGender()); } // 导出Excel文件 try (FileOutputStream outputStream = new FileOutputStream("person.xlsx")) { workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } } } class Person { private String name; private int age; private String gender; public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public int getAge() { return age; } public String getGender() { return gender; } } ``` 这个示例代码创建了一个包含表头和数据的Excel表格,并将其导出到名为“person.xlsx”的文件中。你可以根据需要修改表格的内容和文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值