利用visual foxpro将dbf文件转为excel文件之后 中文部分都是乱码如何解决呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用visual foxpro将dbf文件转为excel文件之后 中文部分都是乱码如何解决呢?相关的知识,希望对你有一定的参考价值。

用visual foxpro 6.0将DBF 文件导出为excel文件,打开后中文部分都是乱码,我的excel是2007版的。用2003版的excel就不会出乱码。但是公司过几2003就不可已使用了。怎么办呢。
是因为visual foxpro的版本低么?我下的visual foxpro是6.0的,但是运行图标是VFP98是什么意思呢?

是不是导出的有问题,试试XL5参数格式。

下面是导出命令详解

把 Visual FoxPro 表中的数据复制到其他格式的文件中。

EXPORT TO FileName [TYPE]
DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5
[FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[NOOPTIMIZE] [AS nCodePage]
参数
FileName
指定文件名,Visual FoxPro 向其中导入数据。如果该文件名中不包含扩展名,则赋给它指定文件类型的默认扩展名。
TYPE
指定待创建文件的类型。关键字 TYPE 是可选的,但指定的值必须是下列某一文件类型。 文件类型 说明
DIF 如果指定 DIF 类型,则 Visual FoxPro 表中的每个字段成为 VisiCalc所使用的 DIF (Data Interchange Format )文件中的一个矢量(列),而每个记录成为该文件中的一个元组(行)。如果 FileName 没有包含扩展名,则为新文件名指定 DIF 扩展名。
MOD MOD 子句用于向 Microsoft Multiplan 4.0 版 MOD 格式的文件导入数据。如果 FileName 没有包含扩展名,则为新文件名指定 .MOD扩展名。
SYLK 对于 SYLK 文件(符号链接交换格式,Microsoft Multiplan 中使用),Visual FoxPro 表中的每个字段成为电子表格中的列,而每条记录成为电子表格中的一行。默认情况下,SYLK 文件没有扩展名。
WK1 包含此选项用于从 Visual FoxPro 的表中创建 Lotus-1-2-3 的电子表格。对于使用 Lotus-1-2-3 修订版 2.X 的电子表格文件,指定扩展名为 .WK1。表中的每个字段成为新电子表格的列,而每条记录成为此电子表格的一行。
WKS 包含此选项可从 Visual FoxPro 表中创建 Lotus-1-2-3 电子表格。对于使用 Lotus-1-2-3 修订版 1 - A 的电子表格文件,指定扩展名为 .WKS。表中每个字段成为新电子表格的一列,而每条记录成为此电子表格的一行。
WR1 包含此选项可以从 Visual FoxPro 表中创建 Lotus Symphony 电子表格。对于使用 Symphony 1.01 版的电子表格,指定扩展名为 .WRI。表中的每个字段成为新建电子表格的一列,而每条记录成为此电子表格的一行。
WRK 包含此选项可从 Visual FoxPro 表中创建 Lotus Symphony 电子表格。对于使用 Symphony 1.01 版的电子表格,指定扩展名为 .WRK。表中的每个字段成为新电子表格的一列,而每条记录成为此电子表格的一行。
XLS 包含 XLS 选项可以创建在 Microsoft Excel 中使用的工作表。选定表的每个字段成为该工作表的一列,而每条记录成为一行。除非用户指定另一个扩展名,否则将为新创建的工作表文件指定文件扩展名 .XLS。
XL5 包含 XL5 选项可以创建 Microsoft Excel 5.0 版的工作表文件。当前选定表的每个字段成为该电子表格的一列,而每条记录成为其中的一行。如果没有包含文件扩展名,则将为此新建的工作表指定扩展名 .XLS。

FIELDS FieldList
指定要复制到新文件中的字段。如果省略 FIELDS 子句,则把全部字段复制到新文件中。即使在字段列表中包含备注字段和通用字段,也不会将它们复制到新文件中。
Scope
指定要复制到新文件中的记录范围,只有此范围内的记录才复制到新文件中。范围子句有 ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。
有关范围子句的详细内容,参见 scope(作用域)子句 主题。 包含 Scope 子句的命令只能操作活动工作区中的表。

EXPORT 命令的默认范围是所有记录。

FOR lExpression1
指定只有满足逻辑条件 lExpression1 的记录才被复制到新文件中。这可以帮助您筛选出不想要的记录。
如果 lExpression1 是可优化表达式,则 Rushmore 将优化 EXPORT ... FORlExpression1 命令。为达到最佳性能,应在 FOR 子句中使用可优化表达式。

有关Rushmore 可优化表达式的详细内容,请参阅SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。

WHILE lExpression2
指定一个条件,只要逻辑表达式 lExpression2 取值为“真”(.T.),就把记录复制到新文件中。
NOOPTIMIZE
关闭对 EXPORT 命令的 Rushmore 优化。
详细信息, 参见SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。

AS nCodePage
为 EXPORT 命令创建的文件指定代码页。Visual FoxPro 不仅复制当前选定表的内容,而且在复制数据的同时,自动把数据转换到为新文件指定的代码页上。如果可能,Visual FoxPro 使用指定的代码页来标记新创建的文件。
如果不支持指定的 nCodePage 值,Visual FoxPro 将产生错误信息。可以用GETCP()函数代替 nCodePage,显示“代码页”对话框,从中指定代码页。

如果省略 AS nCodePage,则不转换代码页。如果可能,Visual FoxPro 将使用被复制数据的表所在的代码页来标记新创建的文件。

如果 nCodePage 为 0,则不转换代码页,并且不用代码页标记新建的文件。

备注
EXPORT 命令可以让其他软件包使用 Visual FoxPro 的数据。

如果导出数据的表已建立索引,则按索引顺序创建新文件。追问

好深奥的样子@_@!不太懂代码什么的,不过已经按照xl5的参数格式保存了。还是乱码。。。是因为visual foxpro的版本低么?

追答

应该没有问题的,所有OFFICE软件都应该有向下兼容的功能。

要不你下载一个VFP9。0试试,应该没有问题的。

参考技术A 试试
use 你的dbf
copy to 目标文件名.xls type xls
copy to 目标文件名.xls type xl5
这样才乱码的话,看看是不是office2007默认的编码不是ansi, 试试改这个编码本回答被提问者采纳
参考技术B 不如你编个小程序从vfp表里读一边写到excel文件,我试过这个肯定没问题,不会出乱码

以上是关于利用visual foxpro将dbf文件转为excel文件之后 中文部分都是乱码如何解决呢?的主要内容,如果未能解决你的问题,请参考以下文章

将visual foxpro dbf表批量转换为csv

使用 ODBC 从 Java 读取 Visual Foxpro 数据

转帖通过PHP读取dbf数据(visual fox pro,VFP数据库),官方的dbase无法读取字段为类型memo的数据,国外网站的解决方案 How to read FoxPro Memo w(代

使用 Advantage Local Server 和 FoxPro 同时更新 DBF 文件

扩展名为DBF的是什么文件啊?

如何使用 DAO 将列添加到 FoxPro 文件