回复 10楼 fifowl2001
是换行符(0h0A),首尾都有,一个0h0A就相当多了一行。要处理一下,先清除首尾,其他替换为其他分隔符。
2021-05-26 16:53
2021-05-27 08:56
2021-05-27 10:26
2021-05-27 10:42
[此贴子已经被作者于2021-5-27 14:21编辑过]
2021-05-27 13:58
程序代码:CLEAR
CLEAR ALL
SET SAFETY OFF
cPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cPath)
cXLS = cPath + "pupi_CUR_TEST.xls"
cTXT = cPath + "pupi_CUR_TEST.txt"
oExcel = CREATEOBJECT("Excel.Application")
oExcel.DisplayAlerts = .F.
oExcel.WorkBooks.Open(cXLS)
oExcel.ActiveWorkBook.SaveAs(cTXT, -4158)
oExcel.WorkBooks.Close
oExcel.Quit
CREATE CURSOR tt (操作员 V(10), 采购合同号 V(20), 供应商 V(30), 签约日期 V(10),;
交货日期 V(10), 产品编码 V(10), 规格编号 V(20), 商品名称 V(30),;
规格说明 V(100), 商品总量 I, 单位 V(10), 币种 V(10), 采购金额 N(12,2))
FOR i=2 TO ALINES(aRow,FILETOSTR(cTXT),0h0D0A)
ALINES(aCol, aRow[i], 0h09)
INSERT INTO tt VALUES (aCol[1],aCol[2],aCol[3],aCol[4],aCol[5],aCol[6],aCol[7],aCol[8],;
STRTRAN(STRTRAN(aCol[9],0h0A,"、"),0h22,""),; &&规格说明
VAL(aCol[10]),; &&商品总量
aCol[11],aCol[12],;
VAL(CHRTRAN(aCol[13],0h222C,""))) &&采购金额
ENDFOR
SELECT * FROM tt
RETURN
2021-05-27 14:12
2021-05-27 14:24
,可以解决大部分问题,我修改了一下,我不只是针对这个文件用的,SQL服务器上出来的CSV文件,因为实际问题,前端客户填写随意,导致后期只能靠程序补救统计记录,谢谢!
2021-05-27 14:31
2021-05-28 11:19
2021-05-28 14:20