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,你需要遵循以下步骤: 1. 创建SQL Server数据库表:在SQL Server Management Studio (SSMS) 中,根据DBF文件中的字段定义创建一个新表。表结构应与DBF文件的字段对应,确保数据...
DBF格式,全称为dBase File,...通过选择合适的转换工具,用户可以轻松地将历史DBF数据导入到Excel中,从而进行更高效的数据管理和分析。同时,了解不同格式的特点和转换过程,也有助于提升在数据处理领域的专业素养。
本教程将详细介绍如何将Excel工作表转换成FoxPro的dbf格式,这在处理大量数据时尤其有用,因为FoxPro的dbf文件在一些老旧系统或特定应用中仍然被广泛使用。 首先,我们来看标题"将Excel工作表转换成FoxPro的dbf格式...
5. **整合到系统**:最后,将转换后的DBF文件导入到需要它的系统或应用中。如果目标系统支持直接导入DBF,这一步将非常简单。否则,可能需要编写脚本或使用数据库接口来读取DBF文件。 需要注意的是,虽然Excel提供...
一旦用户选择了要导入的 EXCEL 文件,我们就可以使用 OLE 对象来连接 EXCEL 应用程序,并将 EXCEL 数据导入到 PowerBuilder 应用程序中。在本例中,我们使用 OLE 对象的 ConnectToNewObject 方法来连接 EXCEL 应用...
1. **使用正确的编码打开**:在Excel中,你可以尝试通过“数据”菜单的“从文本/CSV”导入功能,然后在导入向导中选择dbf文件,并指定正确的字符编码。例如,如果你确定dbf文件是GBK编码,就在“编码”选项中选择...
10. **数据导入**:在Excel中,也可以使用“数据”菜单的“自文本”功能,通过分隔符(如逗号或制表符)导入dbf文件内容,手动指定正确的编码。 总的来说,解决ArcGIS 10.2.2的dbf文件在Excel中打开乱码问题需要...
**DBF文件导入数据库** 1. **转换工具**:由于DBF格式较旧,通常需要先将其转换为更现代的格式,如CSV或Excel。可以使用FoxPro、DBF Viewer Plus等工具进行转换。 2. **连接与导入**:转换后,按照Excel文件导入的...
标题提到的“dbf文件转excel”是指将DBF格式的数据转换成Excel格式的过程。这个过程通常是为了在Excel中利用其强大的数据分析和可视化能力。描述中提到的是一个自编程序,可能是一个简单的命令行工具或者GUI应用程序...
这类工具通常会遍历指定目录下的所有DBF文件,然后逐个读取这些文件,解析其内容,并将数据写入相应的CSV文件中。 批量转换过程的基本步骤可能如下: 1. **文件遍历**:首先,程序会扫描指定的目录,获取所有DBF...
标题中的“VB源码DBF数据库导数据到Excel”指的是使用Visual Basic(VB)编程语言编写的代码,其主要功能是将DBF数据库文件中的数据转换并导出到Microsoft Excel电子表格中。DBF文件是一种常见的数据库文件格式,...
- **数据迁移**:将Excel数据导入到更传统的数据库系统中,例如在没有现成导入功能的情况下。 - **数据分析**:DBF文件通常比.xlsx文件小,处理速度更快,对于大数据量的分析可能更有效。 使用这个工具包和源码时,...
- **数据兼容性**:确保Excel中的数据格式与DBF文件所接受的格式一致,例如,日期格式、数值精度等。 - **字段大小限制**:DBF文件的字段长度有限制,因此在转换前需要检查Excel列是否超出这些限制。 - **数据完整...
在这个场景中,我们有一个名为"超的的xls文件转dbf文件小工具"的应用程序,它专门用于将Excel(XLS)文件转换为DBF数据库格式。DBF,全称为dBase File,是一种流行的数据存储格式,常见于早期的数据库管理系统中,现在...
标题中的“一个将*.dbf VFP文件直接转换成*.xls excel的工具”指的是一个程序,该程序由VB(Visual Basic)编写,用于...使用者可以通过这个工具快速便捷地将VFP数据库数据导入到Excel中进行进一步的计算、分析和展示。
4. **数据转换**:在导入DBF文件后,需要将数据结构化并准备导出到Excel。这可能涉及到数据类型转换、异常处理以及可能的数据清洗步骤。 5. **文件流操作**:C#中的`System.IO`命名空间提供了对文件和流的全面支持...
在这个特定的资源中,我们关注的是一个使用易语言编写的模块,该模块用于将DBF(dBase格式)数据库文件导入到超级列表框中。DBF文件是早期数据库系统常用的格式,它存储结构化的表格数据。 在描述中提到,这个模块...
在IT行业中,文件导入导出Excel是一项常见的任务,特别是在数据处理、分析和报告制作时。Excel作为一款功能强大的电子表格工具,提供了丰富的数据管理和计算功能。以下是对这一主题的详细阐述: 1. 文件导入: - *...
文档中的代码可以在ArcGIS中利用arcpy模块批量将dbf文件转换成excel文件(.xls)只需要改workspace,dbf文件以及输出路径。根据网上代码更改,亲测有效。