欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 导出excel文件

程序员文章站 2022-05-30 15:13:02
...

public Map<String,String> doExport(String sort,long fondsId,long metadataType) throws IOException{
			
			//让用户选择导出文件的目录
			
			MetaDataService meService=new MetaDataService();
			List<MetadataPO> metaList=meService.getmetaDataList(sort,fondsId,metadataType).getList();
			StringBuffer strMessage=new StringBuffer();

			//创建一个工作表
			//创建cell代号
			int  z=0;
			HSSFWorkbook hssfworkbook = new HSSFWorkbook();
			Sheet sheet=hssfworkbook.createSheet();
			//导出元数据的表头信息
			String metaData[]={
				"元数据名称","元数据中文显示名称","元数据英文显示名称","元数据参照类型","元数据长度","元数据显示长度","元数据默认值","元数据说明","元数据属性","是数据是否参照",
				"元数据参照类型","实体分类ID","是否自动增长","自动增长类型","自动增长位数","自动增长步长","是否创建索引","是否自动全选","是否携带项","是否必录项",
				"约束规则","格式化字符串","文字颜色","显示位置","是否显示","是否归档库显示","是否整理库显示","归档类型","数据类别"
			};
			Row row0=sheet.createRow(0);
			strMessage.append("导出结果:\n开始导出元数据!!!!!\n");
			for(int k=0;k<29;k++){
   			 row0.createCell(k).setCellValue(metaData[k]);
			}
			//开始创建元数据
			
			for(int i=1;i<=metaList.size();i++){
				Row row=sheet.createRow(i);
				MetadataPO mePoExport=metaList.get(i-1);
				//1获取元数据名称

				row.createCell(z).setCellValue(mePoExport.getName());
				z++;
				//2获取元数据中文名称
				row.createCell(z).setCellValue(mePoExport.getDisplaylabelZh());
				z++;
				//2数据中文名称

				…………………这里为n个设置设置单元格值的代码与上下类似故删除…………………
				//数据类别
				row.createCell(z).setCellValue(mePoExport.getType());
				z=0;
			}
			strMessage.append("成功导出"+metaList.size()+"条数据!\n");
			strMessage.append("元数据已经保存到桌面:\n元数据__[时间].xml");
			FileSystemView fsv = FileSystemView.getFileSystemView();

			String deskpath=fsv.getHomeDirectory().toString();
			//会将导出的元数据表默认保存到桌面
			File file=new File(deskpath+"/元数据__"+DateUtil.getTimeStamp()+".xls");
		    FileOutputStream   fOut  = new  FileOutputStream(file);  
		    hssfworkbook.write(fOut);
		    fOut.close();
		    
		    Map<String,String>  map=new HashMap<String, String>();
		    map.put("message",strMessage.toString());
			return map;
		}