主题:请问电子表数据导入为何会自动四舍五入问题
xsnyjd
[专家分:0] 发布于 2010-01-29 08:18:00
我用一段代码(程序1)将一电子表(原XLS)导入成DBF文,碰到的问题是:当电子表中的数值带一位小数,如果数值格式是常规格式或文本格式,导入成DBF文件时数值就会四舍五入;当数值格式是"数值"时,导入成DBF文件就能保持原数值,请教高手,添加什么代码后能使数值格式不管时常规格式或文本格式或数值格式都能保持原数值导入成DBF文件,谢谢!(上述两文件在附件中,请将这两文件放在桌面上再运行程序1.prg)
回复列表 (共3个回复)
沙发
afoxer [专家分:360] 发布于 2010-01-29 11:16:00
楼主,我看过您编的程序了,您如果单单是为了将EXCEL表转换成DBF表,您就不用编那段程序了,直接在EXCEL里把那些成绩数据设置成数值格式,然后另存为dBaseIII的DBF表就成了。
不过从您的代码里我也学到了几个有关EXCEL表的属性,非常感谢。
板凳
afoxer [专家分:360] 发布于 2010-01-29 11:47:00
楼主您如果想练习一下编程,那就看一下下列的句子,是我在您原句子中加了几句,请您试运行下,看是不是您想要的结果?
lcFileName='C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\原始XLS1.XLS'
oExcel=CREATEOBJECT('Excel.application')
oExcel.Workbooks.Open('&lcFileName') &&打开文件
R=oExcel.SHEETS(1).UsedRange.ROWS.COUNT &&有数据的总行数
C=oExcel.SHEETS(1).UsedRange.COLUMNS.COUNT &&有数据的总列数
oExcel.Cells(R,C).Select &&选中数据
*oExcel.Cells(527,16).Select &&选中数据
oExcel.Columns.AutoFit &&让所有的列宽都自动调整
oExcel.DisplayAlerts=.F.
*--------------下列是我加上的-------------------------------------------
oExcel.Range("E2:I1277").Select
*如果EXCEL表的列是固定的,行是可变的,那么用下列语句代替上列一句:
*Rc = alltr(str(R))
*oExcel.Range("E2:I&RC").Select
oExcel.Selection.NumberFormatLocal = "0.0_ "
oExcel.Cells(R,C).Select &&再次选中全部数据,准备另存
*------------------------------------------------------------------------
*oExcel.ActiveWorkbook.SaveAs('C:\Documents and Settings\Administrator\桌面\初中期末统计源码\竞赛原始成绩.DBF',8) &&另存为DBF
oExcel.ActiveWorkbook.SaveAs('C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\原始XLS导入.DBF',8) &&另存为DBF
oExcel.ActiveWorkbook.saved=.t. &&不保存当前EXCEL表
oExcel.Workbooks.close &&关闭表
oExcel.quit &&退出EXCEL
RELEASE oExcel &&释放变量
USE ("C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面\原始XLS导入.DBF")
BROW
3 楼
afoxer [专家分:360] 发布于 2010-01-31 22:51:00
楼主,你为什么还不结贴?你在等什么?
我来回复