`

将dbf格式的文件导入到excel中

阅读更多
public class DBFtoExcel {
	
	/**
	 * 从dbf文件中读取数据,并将数据保存到headName,data中。
	 * @param filePath  dbf文件的位置
	 * @param headName 字段名称集合
	 * @param data 数据集合
	 */
	public void readDBFFile(String filePath,List headName,List data) {
		InputStream inputStream = null;
		try {
			inputStream = new FileInputStream(filePath);
			DBFReader reader = new DBFReader(inputStream);
			int numberOfFields = reader.getFieldCount();
			DBFField filed = null;
			for (int i = 0; i < numberOfFields; i++) {
				filed = reader.getField(i);//读字段值
				headName.add(new String(filed.getName()));
			}
			Object[] rowObjects = null;
			while ((rowObjects = reader.nextRecord()) != null) { //读数据
				data.add(rowObjects);
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try { 
					inputStream.close(); 
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 将从dbf文件读取的数据保存成excel
	 * @param saveFilePath 文件保存的路径
	 * @param sheetNamePosts excel表中sheet名字和顺序位置
	 * @param headName 字段名称集合
	 * @param data 数据集合
	 */
	public void writeExcel(String saveFilePath,String[] sheetNamePosts,List headName,List data){
		WritableWorkbook book = null;
		try {
			book = Workbook.createWorkbook(new File(saveFilePath));
			Label label = null;
			WritableSheet sheet = null;//工作表
			Object[] rowObjects = null;
			String[] sheetNamePost = null;//工作表的名字和位置
			for (int i = 0; i < sheetNamePosts.length; i++) {
				sheetNamePost = sheetNamePosts[i].split(":");
				sheet = book.createSheet(sheetNamePost[0], Integer.parseInt(sheetNamePost[1]));//创建一个工作表
				for (int j = 0; j < headName.size(); j++) {
					//Label(列号,行号 ,内容)
					label = new Label(j,0,new String(headName.get(j).toString().getBytes("ISO-8859-1"),"GBK"));
					sheet.addCell(label);
				}
				for (int j = 0; j < data.size(); j++) {
					rowObjects = (Object[]) data.get(j);
					for (int k = 0; k < rowObjects.length; k ++) {
						//Label(列号,行号 ,内容)
						label = new Label(k,j+1,rowObjects[k] == null ? "" : new String(rowObjects[k].toString().getBytes("ISO-8859-1"),"GBK"));
						sheet.addCell(label);
					}
				}
			}
			book.write();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (RowsExceededException e) {
			e.printStackTrace();
		} catch (WriteException e) {
			e.printStackTrace();
		} finally {
			if (book != null) {
				try {
					book.close();
				} catch (WriteException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String[] args) {
		DBFtoExcel toExcel = new DBFtoExcel();
		String filePath = "F:\\dbffile\\13-s.dbf";
		List headName = new ArrayList();
		List data = new ArrayList();
		String saveFilePath = "f:\\dbffile\\测试dbfData.xls";
		String[] sheetNamePosts = {"第一页:0"};
		toExcel.readDBFFile(filePath, headName, data);
		toExcel.writeExcel(saveFilePath, sheetNamePosts, headName, data);
	}

}

备注:javadbf源码见附件
分享到:
评论

相关推荐

    dbf文件导入SQL server

    首先,要将DBF文件导入SQL Server,你需要遵循以下步骤: 1. 创建SQL Server数据库表:在SQL Server Management Studio (SSMS) 中,根据DBF文件中的字段定义创建一个新表。表结构应与DBF文件的字段对应,确保数据...

    DBF格式转换EXCEL

    DBF格式,全称为dBase File,...通过选择合适的转换工具,用户可以轻松地将历史DBF数据导入到Excel中,从而进行更高效的数据管理和分析。同时,了解不同格式的特点和转换过程,也有助于提升在数据处理领域的专业素养。

    将 Excel工作表 转换成 FoxPro 的 dbf 格式

    本教程将详细介绍如何将Excel工作表转换成FoxPro的dbf格式,这在处理大量数据时尤其有用,因为FoxPro的dbf文件在一些老旧系统或特定应用中仍然被广泛使用。 首先,我们来看标题"将Excel工作表转换成FoxPro的dbf格式...

    excel转DBF

    5. **整合到系统**:最后,将转换后的DBF文件导入到需要它的系统或应用中。如果目标系统支持直接导入DBF,这一步将非常简单。否则,可能需要编写脚本或使用数据库接口来读取DBF文件。 需要注意的是,虽然Excel提供...

    PB中导入EXCEL数据.doc

    一旦用户选择了要导入的 EXCEL 文件,我们就可以使用 OLE 对象来连接 EXCEL 应用程序,并将 EXCEL 数据导入到 PowerBuilder 应用程序中。在本例中,我们使用 OLE 对象的 ConnectToNewObject 方法来连接 EXCEL 应用...

    解决Arcgis10.2.2中dbf文件用EXCEL打开乱码问题.zip

    1. **使用正确的编码打开**:在Excel中,你可以尝试通过“数据”菜单的“从文本/CSV”导入功能,然后在导入向导中选择dbf文件,并指定正确的字符编码。例如,如果你确定dbf文件是GBK编码,就在“编码”选项中选择...

    解决Arcgis10.2.2中dbf文件用EXCEL打开乱码问题

    10. **数据导入**:在Excel中,也可以使用“数据”菜单的“自文本”功能,通过分隔符(如逗号或制表符)导入dbf文件内容,手动指定正确的编码。 总的来说,解决ArcGIS 10.2.2的dbf文件在Excel中打开乱码问题需要...

    把Excel或Dbf文件的数据导进数据库中(附报告)

    **DBF文件导入数据库** 1. **转换工具**:由于DBF格式较旧,通常需要先将其转换为更现代的格式,如CSV或Excel。可以使用FoxPro、DBF Viewer Plus等工具进行转换。 2. **连接与导入**:转换后,按照Excel文件导入的...

    dbf文件转excel

    标题提到的“dbf文件转excel”是指将DBF格式的数据转换成Excel格式的过程。这个过程通常是为了在Excel中利用其强大的数据分析和可视化能力。描述中提到的是一个自编程序,可能是一个简单的命令行工具或者GUI应用程序...

    批量转换DBF格式文件为CSV格式文件

    这类工具通常会遍历指定目录下的所有DBF文件,然后逐个读取这些文件,解析其内容,并将数据写入相应的CSV文件中。 批量转换过程的基本步骤可能如下: 1. **文件遍历**:首先,程序会扫描指定的目录,获取所有DBF...

    VB源码DBF数据库导数据到Excel

    标题中的“VB源码DBF数据库导数据到Excel”指的是使用Visual Basic(VB)编程语言编写的代码,其主要功能是将DBF数据库文件中的数据转换并导出到Microsoft Excel电子表格中。DBF文件是一种常见的数据库文件格式,...

    excel.xlsx(仅xlsx格式)转.dbf文件包和代码

    - **数据迁移**:将Excel数据导入到更传统的数据库系统中,例如在没有现成导入功能的情况下。 - **数据分析**:DBF文件通常比.xlsx文件小,处理速度更快,对于大数据量的分析可能更有效。 使用这个工具包和源码时,...

    excel转dbf工具

    - **数据兼容性**:确保Excel中的数据格式与DBF文件所接受的格式一致,例如,日期格式、数值精度等。 - **字段大小限制**:DBF文件的字段长度有限制,因此在转换前需要检查Excel列是否超出这些限制。 - **数据完整...

    超的的xls文件转dbf文件小工具

    在这个场景中,我们有一个名为"超的的xls文件转dbf文件小工具"的应用程序,它专门用于将Excel(XLS)文件转换为DBF数据库格式。DBF,全称为dBase File,是一种流行的数据存储格式,常见于早期的数据库管理系统中,现在...

    一个将*.dbf VFP文件直接转换成*.xls excel的工具(李长峰) VB源代码

    标题中的“一个将*.dbf VFP文件直接转换成*.xls excel的工具”指的是一个程序,该程序由VB(Visual Basic)编写,用于...使用者可以通过这个工具快速便捷地将VFP数据库数据导入到Excel中进行进一步的计算、分析和展示。

    C#导入DBF文件,导出Excle文件

    4. **数据转换**:在导入DBF文件后,需要将数据结构化并准备导出到Excel。这可能涉及到数据类型转换、异常处理以及可能的数据清洗步骤。 5. **文件流操作**:C#中的`System.IO`命名空间提供了对文件和流的全面支持...

    易语言DBF导入超级列表框模块源码

    在这个特定的资源中,我们关注的是一个使用易语言编写的模块,该模块用于将DBF(dBase格式)数据库文件导入到超级列表框中。DBF文件是早期数据库系统常用的格式,它存储结构化的表格数据。 在描述中提到,这个模块...

    文件导入导出excel

    在IT行业中,文件导入导出Excel是一项常见的任务,特别是在数据处理、分析和报告制作时。Excel作为一款功能强大的电子表格工具,提供了丰富的数据管理和计算功能。以下是对这一主题的详细阐述: 1. 文件导入: - *...

    DBF批量to Excel(可).txt

    文档中的代码可以在ArcGIS中利用arcpy模块批量将dbf文件转换成excel文件(.xls)只需要改workspace,dbf文件以及输出路径。根据网上代码更改,亲测有效。

Global site tag (gtag.js) - Google Analytics