注册 登录
编程论坛 VFP论坛

如何把txt文件内容插入到xls文件当中

yuq 发布于 2023-06-09 14:18, 1379 次点击
请问如何把txt文件内容全部放到xls文件当中去
11 回复
#2
吹水佬2023-06-09 14:50
这说法就最简单,复制 _cliptext = filetostr(TXT),粘贴 EXCEL...PasteSpecial
#3
yuq2023-06-12 14:53
回复 2楼 吹水佬
请问这是什么问题呢
只有本站会员才能查看附件,请 登录
#4
吹水佬2023-06-12 15:38
具体情况不明
给相关文件和代码测试
#5
yuq2023-06-13 11:29
回复 4楼 吹水佬
已解决,非常感谢,在请问一个其他的问题
OEXCEL.WORKBOOKS.OPEN(cpath+alltrim(wjfl2(xhcs2,1))+'.xlsx')
OEXCEL.sheets(1).Select
OEXCEL.Selection.NumberFormatLocal = '@'
OEXCEL.Columns.AutoFit
_cliptext = filetostr(cpath+cmd+'.TXT')
OEXCEL.Range("A2").PasteSpecial
OEXCEL.ActiveWorkBook.SaveAs(wjcpath+alltrim(wjfl2(xhcs2,1)), 51)
OEXCEL.ActiveWorkBook.Close(.F.)                                         
OEXCEL.DisplayAlerts = .T.
第三行里面不能把所有单元格改成文本格式,仍然是常规格式,请问是什么问题呢
我是要把txt文件中的内容粘贴到xlsx文件里面去,但是粘过去以后有字段数字长的话就会变成科学计数法

[此贴子已经被作者于2023-6-13 11:36编辑过]

#6
吹水佬2023-06-13 12:07
不好猜测,有得测试吗
#7
yuq2023-06-13 14:01
回复 6楼 吹水佬
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-6-13 14:21编辑过]

#8
吹水佬2023-06-13 15:43
看似是将一个XLSX分解成多个XLSX(小于0x10000行),过程是 XLSX ==> TXT ==> DBF ==> XLSX。
可以直接将一个XLSX分解成多个XLSX(或一页分成多页),不用转来转去。


#9
吹水佬2023-06-13 15:49
OEXCEL.Selection.NumberFormatLocal = '@'
这行是设置为文本格式,没问题吧
粘过去变成科学计数法是不是数据类型问题,或者粘贴过去设置为文本格式。
#10
yuq2023-06-13 16:52
回复 8楼 吹水佬
请问,怎么把一个xlsx转成多个xlsx呢
#11
吹水佬2023-06-13 17:06
看提供的代码运行结果是按“地区”分类分解成以地区名的xlsx文件
1、在EXCEL按“地区”排序,获取“地区”的行数
2、分别按“地区”的行数复制到新建工作簿页面再保存到xlsx文件
#12
吹水佬2023-06-13 22:00
程序代码:

cPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cPath)

IF DIRECTORY(cPath + "拆分文件")
    DELETE FILE (cPath + "拆分文件\*.*")
ELSE
    MD (cPath + "拆分文件")
ENDIF

xlssl = ADIR(xlswjm, "*.xls*")

wait '正在处理:' +alltrim(xlswjm(1,1)) WINDOW AT  30 ,100 NOWAIT
               
OEXCEL = CREATEOBJECT("EXCEL.APPLICATION")
OEXCEL.WORKBOOKS.OPEN(cpath+xlswjm(1,1))
OEXCEL.DisplayAlerts = .f.
oShe = OEXCEL.SHEETS(1)
nRow = oShe.UsedRange.Rows.Count
nCol = oShe.UsedRange.Columns.Count

oShe.Sort.SortFields.Add(oShe.Cells(2,3).Resize(nRow-1,1), 0, 1, 0)
oShe.Sort.SetRange(oShe.Cells(2,1).Resize(nRow-1,nCol))
oShe.Sort.Header = 0
oShe.Sort.MatchCase = .f.
oShe.Sort.Orientation = 1
oShe.Sort.SortMethod = 1
oShe.Sort.Apply()

n = 2
DO WHILE n <= nRow
    cName = oShe.Cells(n,3).value
    ? cName
    m = OEXCEL.COUNTIF(oShe.UsedRange.Columns(3), cName)
    book = OEXCEL.WORKBOOKS.add()     
    newShe = book.Sheets(1)
    oShe.Cells(1,1).Resize(1,nCol).Copy(newShe.Cells(1,1))
    oShe.Cells(n,1).Resize(m,nCol).Copy(newShe.Cells(2,1))
    newShe.Columns.AutoFit()
    book.SaveAs(cPath + "拆分文件\" + cName + ".xlsx")
    book.close()
    n = n + m
ENDDO

OEXCEL.ActiveWorkBook.Close(.F.)                                         
OEXCEL.QUIT
1