回复 10楼 fifowl2001
是换行符(0h0A),首尾都有,一个0h0A就相当多了一行。要处理一下,先清除首尾,其他替换为其他分隔符。
[此贴子已经被作者于2021-5-27 14:21编辑过]
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