Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
DBF (DataBase File) 是一种旧版数据库文件格式,最初由 dBASE 在 1980 年代初期推出。尽管该格式年代久远,但 DBF 文件仍在许多行业中广泛用于存储结构化数据,特别是在会计、GIS 和其他专业应用程序中。Aspose.Cells 允许您将这些旧版文件无缝集成到现代 Node.js via C++ 电子表格工作流中。
该库支持读取和写入 DBF 文件,使您能够:
DBF 文件也可以直接在 Microsoft Excel 和其他电子表格应用程序中打开,使它们成为旧版系统与现代电子表格工具之间便捷的桥梁。
Aspose.Cells 支持以下 DBF 格式版本:
该库提供对以下操作的全面支持:
处理 DBF 文件时,请牢记以下限制:
YYYYMMDD 格式存储。Aspose.Cells 可以轻松地将数据从 DBF 文件加载到 Workbook 对象中。该库使用 LoadOptions 类来指定源格式,确保在加载过程中正确解释数据。
要读取 DBF 文件,您需要创建一个 LoadOptions 实例,将其 LoadFormat 属性设置为 LoadFormat.Dbf,并将其与文件路径一起传递给 Workbook 构造函数。加载完成后,数据即可通过 Worksheets 集合进行访问,您可以在其中迭代单元格、提取值或根据需要处理数据。
以下示例演示了如何将现有 DBF 文件加载到 Aspose.Cells 中,访问其第一个工作表,并读取单元格的值。
let sb = "";
const maxRow = cells.getMaxDataRow();
const maxCol = cells.getMaxDataColumn();
for (let i = 0; i <= maxRow; i++)
{
for (let j = 0; j <= maxCol; j++)
{
const cell = cells.get(i, j);
const value = cell.getStringValue();
sb += "|" + value;
}
sb += "|" + "\n";
}
console.log(sb);
const outputPath = path.join(dataDir, "output.xlsx");
workbook.save(outputPath, AsposeCells.SaveFormat.Xlsx);
console.log("DBF file loaded successfully. Converted XLSX saved at: " + outputPath);
将数据写入 DBF 文件的过程与使用 Aspose.Cells 保存其他电子表格格式类似。您可以创建或加载 Workbook,使用数据填充工作表,然后调用 save 方法,将 SaveFormat.Dbf 指定为目标格式。
要创建 DBF 文件,请按照以下步骤操作:
Workbook 实例。Worksheets 集合中访问第一个工作表。workbook.save 方法,传入文件路径和 SaveFormat.Dbf 作为参数。以下示例演示了如何从头创建新的 DBF 文件。它使用包含不同数据类型(字符串、数字和日期)的示例数据填充工作表,以说明导出到 DBF 格式时如何处理字段类型。
const AsposeCells = require("aspose.cells");
const path = require("path");
const fs = require("fs");
const outputDir = "C:\\Output\\";
const filePath = path.join(outputDir, "output.dbf");
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir, { recursive: true });
}
const workbook = new AsposeCells.Workbook();
const worksheet = workbook.getWorksheets().get(0);
const cells = worksheet.getCells();
// 列标题
cells.get(0, 0).putValue("ID");
cells.get(0, 1).putValue("Name");
cells.get(0, 2).putValue("Department");
cells.get(0, 3).putValue("Salary");
cells.get(0, 4).putValue("HireDate");
// 数据行 1
cells.get(1, 0).putValue(101);
cells.get(1, 1).putValue("John Smith");
cells.get(1, 2).putValue("Engineering");
cells.get(1, 3).putValue(75000.50);
cells.get(1, 4).putValue(new Date(2020, 2, 15));
// 数据行 2
cells.get(2, 0).putValue(102);
cells.get(2, 1).putValue("Jane Doe");
cells.get(2, 2).putValue("Marketing");
cells.get(2, 3).putValue(68000.75);
cells.get(2, 4).putValue(new Date(2019, 6, 22));
// 数据行 3
cells.get(3, 0).putValue(103);
cells.get(3, 1).putValue("Bob Johnson");
cells.get(3, 2).putValue("Finance");
cells.get(3, 3).putValue(82000.00);
cells.get(3, 4).putValue(new Date(2021, 0, 10));
// 数据行 4
cells.get(4, 0).putValue(104);
cells.get(4, 1).putValue("Alice Brown");
cells.get(4, 2).putValue("Human Resources");
cells.get(4, 3).putValue(71000.25);
cells.get(4, 4).putValue(new Date(2018, 10, 5));
// 数据行 5
cells.get(5, 0).putValue(105);
cells.get(5, 1).putValue("Charlie Wilson");
cells.get(5, 2).putValue("Operations");
cells.get(5, 3).putValue(79500.80);
cells.get(5, 4).putValue(new Date(2022, 4, 30));
// 设置列宽以提高可读性
worksheet.getCells().setColumnWidth(0, 8);
worksheet.getCells().setColumnWidth(1, 20);
worksheet.getCells().setColumnWidth(2, 20);
worksheet.getCells().setColumnWidth(3, 12);
worksheet.getCells().setColumnWidth(4, 14);
workbook.save(filePath, AsposeCells.SaveFormat.Dbf);
在 Aspose.Cells 和 DBF 格式之间传输数据时,了解两个系统之间的数据类型映射方式对于确保数据完整性非常重要。
保存时,Aspose.Cells 单元格值会自动转换为适当的 DBF 字段类型:
YYYYMMDD 格式的日期 (D) 字段。DBF 文件可能使用不同的字符编码,具体取决于创建它们的应用程序。Aspose.Cells 在大多数情况下透明地处理编码,但如果您遇到字符显示问题,可能需要验证源文件的编码。
DBF 字段名称必须遵守以下规则:
写入 DBF 文件后,您可以通过在 Microsoft Excel 或任何与 dBASE 兼容的应用程序中打开它来验证结果。数据应以表格布局显示,字段名称作为列标题,记录根据您提供的数据填充。
使用 Aspose.Cells 读取和写入 DBF 文件最实用的用例之一是在 DBF 格式与现代电子表格格式(如 XLSX、XLS 或 CSV)之间转换数据。由于 Aspose.Cells 支持多种格式,您可以轻松加载 DBF 文件并将其重新保存为任何其他受支持的格式,反之亦然。
例如,您可以读取一个 DBF 文件,使用 Aspose.Cells API 应用格式或进行计算,然后将结果保存为 XLSX 文件,以便分发给使用现代电子表格应用程序的用户。反之,您可以从 XLSX 或 CSV 文件中获取数据并将其导出为 DBF 格式,以便与旧版系统集成。
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.