如何实现多个TXT文件文件(N个)导入到一个EXCEL文件的对应数目(N个)的SHEET中
发布网友
发布时间:2022-04-25 13:54
我来回答
共4个回答
热心网友
时间:2023-10-05 10:28
不用这么麻烦呀?
EXCEL本身就有类似数据库的数据导入功能的。
按你所述,你可以这样:
①建一模板XLS文件,文件名比如为201100.xls
②在模板文件中建31个SHEET,名称比如为1,2……31
③在每个SHEET中都做如下操作(别告诉我你不会用复制):定位在需要的格(比如A1)>数据>导入外部数据>导入数据,选择与SHEET名日期对应的TXT文件,按数据分列的操作方法设置数据和列属性等,点新窗口中的属性按钮,勾选”打开工作簿时,自动刷新“等需要的项(注意设置的TXT文件的地址是绝对地址还是相对地址)(注意”保存查询定义“一定要勾选),确定。
④请反复操作第③步,确认你了解了每一步的功能后设置完成此31个表。保存,将模板文件201100.xls设为只读。
⑤每月底,打开201100.xls,确认刷新(你要是设为确认刷新31次可够你烦的,呵呵),另存为当月文件。
当然用VBA程序也可以完成这个任务,不过显然没有我的方法学习难度低,呵呵。
给分吧
特别提醒一句:此方法的数据源是极为宽泛的(想当年某会员网站只提供网页查询功能,我用这个功能半天时间把网站的几万行数据全部导到了本地,呵呵,省了上千元的会员费)
热心网友
时间:2023-10-05 10:28
这个VB文件很长啊,试试下面这个VBA(省略了定义语句),原理基本一样:在保存宏命令所在表格文件的路径中,逐个打开全部文本文件(扩展名为.TXT,注意,文件名不能太长27位以内,否则不被导入),同时将它们逐一移到宏命令所在文件。
创建方法:自建一表格文件(文件名不限),保存后,在VBA开发工具中,选中该文件,插入“模块”,将下面的宏命令复制到模板编辑区,再次保存。
使用方法:将自建文件保存到要导入的TXT文件同一文件夹中,打开(建议将宏安全性设置为中,需要时就启用宏,不需要时不启用),按键Alt+F8,执行宏“导入本地文件夹TXT文件”即可。
Sub 导入本地文件夹TXT文件()
路径全名 = ThisWorkbook.FullName
命令文件 = ThisWorkbook.Name
路径名称 = Left(路径全名, Len(路径全名) - Len(命令文件)) '取得命令文件所在路径
If Right(路径名称, 1) <> "\" Then 路径名称 = 路径名称 + "\"
文件类型 = "*.txt"
Set s = CreateObject("Scripting.FileSystemObject") '为VBA创建文件系统
Set d = s.GetFolder(路径名称) '为VBA指定文件夹
Set f = d.Files '将文件夹中全部文件作为处理对象
For Each k In f '逐个文件处理
m = k.Name '提取文件名(短文件名)
If (LCase(Right(m, 3)) = "txt") Then '如果是txt文件,就打开它
文本长名 = 路径名称 + k.Name
Application.StatusBar = "正打开文件:" + k.Name '在状态栏提示处理进度
Workbooks.OpenText Filename:=文本长名
On Error GoTo 出错提示 '防止因文本文件名称过长,影响表单移动
ActiveSheet.Move Before:=ThisWorkbook.Sheets(1) '以移动代替导入
On Error GoTo 0
End If
Next k
Set f = Nothing
Set d = Nothing
Set s = Nothing
MsgBox "当前文件夹中TXT文件收集完毕!", vbOKOnly, "处理结果"
Exit Sub
出错提示:
MsgBox "移动表单出错!(TXT文件名可能太长了)"
ActiveWorkbook.Close False
Resume Next
End Sub
热心网友
时间:2023-10-05 10:29
可以尝试自已编个程序来实现先读取oracle中的,再导入到excel文件中 应该不能倒吧,SQL server是可以的,但是好象也不能按照特定的格式如果真的要倒也
热心网友
时间:2023-10-05 10:29
这个不难,你发两个TXT样本给我,再发整理后的最终格式的EXCEL表格给我,我帮你写好代码。
276337287@qq.com