日期:2014-05-16  浏览次数:20528 次

Java 导出dbf文件

以下代码是导出dbf文件

public  String  doCreateDBF(String[] fieldsZh,String[] fields,List list,HttpServletResponse response,int [] datasize) throws IOException{

		DBFWriter Writer=new DBFWriter();//首先要创建一个DBFwriter	
		response.setCharacterEncoding("UTF-8");
		OutputStream  os=response.getOutputStream();	
		DynamicPO po = null;		
		Object rowData[];		
		DBFField []field=new DBFField[fieldsZh.length];//创建dbf文件的列文件
		int rowSize = list.size();
		int colSize = field.length;
		for(int i=0;i<fields.length;i++){
			/*po=(DynamicPO) list.get(0);*/
			
			field[i]=new DBFField();
			field[i].setDataType(DBFField.FIELD_TYPE_C);	
			field[i].setFieldLength(datasize[i]);
			field[i].setFieldName((fields[i]));//为每一列设置值
		}
		
		Writer.setFields(field);//将列交给writer写入dbf文件
		
		String strValue="";//为类属性定义接受参数
		for(int row=0;row<rowSize;row++){
			
				rowData= new Object[colSize];//新建一个列,
			
				po = (DynamicPO) list.get(row);
			
				for(int col=0;col<colSize;col++){
					strValue=String.valueOf(po.getProperty(fields[col]));
					if(strValue==""||strValue.equals("")||strValue==null||"null".equals(strValue)){
						rowData[col]="";	
					}else{
						rowData[col]=strValue.toString();	
					}	
				}			
				Writer.addRecord( rowData);		
		}
				Writer.write(os);
	
				os.close();
		
				return null;
		}
?