txt文本文件的转换:转换成Excel或是Access(50分)

  • 主题发起人 主题发起人 kmwlw
  • 开始时间 开始时间
K

kmwlw

Unregistered / Unconfirmed
GUEST, unregistred user!
格式如下:
000010 6908312001347明治欣欣杯(草莓)50g 01 50g 广东广州
000011 6908312000760明治欣欣杯(草莓)50g 01 50g 广东广州
000012 6908312000821巧克力香蕉欣欣杯50g 01 50g 广东广州
000013 2000000000138金冠太飞巧克力夹心糖 11 500克 上海
010001 6909409020104上好佳大礼包 01 260g 上海
010002 6909409020753上好佳大礼包 01 350g 上海
010003 6923721203113妙脆角新年步步高礼包 01 234g 江苏南京

我试过用sql server自带的导入/导出工具,但是列之间没有标点分隔符,
6908312001347明治欣欣杯(草莓)50g 这两列条码和品名又是连在一起的,不知如何下手
 
可能你是用多个空格分割的,只有将这些成串的空格替换成单一分隔符
但是从这几个字段看 好像你的每个字段填充了空格后长度都是一样的,所以你还可以将它作为一个字段导入后,到sql server 里面根据每个字段的长度进行分割生成另外一个表即可
 
还是不行啊
 
你要转换成access或是excel,怎么还会用到dts?
 
你要转换成access或是excel,怎么还会用到dts?
源和目的是可以选的阿?目的又不一定非是SQLSERVER
 
先对原来的文件处理一下,加上分隔符再转换。
000010 6908312001347明治欣欣杯(草莓)50g 01 50g 广东广州
-->>
000010 6908312001347 + #9 +明治欣欣杯(草莓) + #9 + 50g 01 50g 广东广州
 
你整个导入到sql server一个表的一个字段里面 假设表T字段col 则用下面的语句:
select substring(col,1,8)as a,substring(col,9,13) as b,substring(col,22,20) as c,substring(ltrim(substring(col,39,30)),1,6) as d,
substring(ltrim(substring(col,39,30)),8,8) as e,ltrim(substring(ltrim(substring(col,39,30)),17,8)) as f from T
可以得到你要的效果
 
感谢xinjinren为我提供了正确的答案,多谢各位的参与
 
多人接受答案了。
 
后退
顶部