2016-04-15 121 views
0

这里是我的CSV文件示例:如何分隔CSV文件中的空格和分号导入到MS Access?

2000-01-10 19:59;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 
2000-01-10 20:14;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 
2000-01-10 20:29;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 
2000-01-10 20:44;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 
2000-01-10 20:59;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 
2000-01-10 21:14;0.000;m3/h;100.9;-0.0;100.9;m3;0.000;0.000;99;66 

我有一个问题分离的日期和时间。在分隔符中,我只能选择分号。我只能选择一个。

我怎样才能将它们全部分开?

+0

用分号替换空格吗? – Arashsoft

+0

你是如何上传CSV的? – Spidey

回答

1

这不是分隔符。

选择定界符

选择分隔符;

然后导入/链接为DateTime并将其拆分(如果您确实必须)。

0

如果在导入CSV文件之前数据库需要这样做,则可以使用小批处理文件将CSV文件每行中的第一个空格替换为具有单独字段值的日期和时间。

@echo off 
setlocal 

rem Define CSV file to process which can be also passed as argument 
rem and the temporary file needed while processing the CSV file. 
if "%~1" == "" (
    set "CSV_File=C:\Temp\Test.csv" 
    set "TempFile=%TEMP%\Test.tmp" 
) else (
    set "CSV_File=%~1" 
    set "TempFile=%TEMP%\%~n1.tmp" 
) 

rem Check existence of CSV file to process and if really existing, 
rem write each line of CSV file to temporary file with replacing 
rem the first space by a semicolon. After having processed each 
rem line move the temporary file over the CSV file. 

if exist "%CSV_File%" (
    if exist "%TempFile%" del "%TempFile%" 
    for /F "usebackq eol=# tokens=1* delims= " %%A in ("%CSV_File%") do echo %%A;%%B>>"%TempFile%" 
    move /Y "%TempFile%" "%CSV_File%" 
) 

endlocal 

对于理解使用的命令以及它们如何工作,打开命令提示符窗口中,执行有下面的命令,并完全读取显示每个命令的所有帮助页面非常谨慎。

  • call /? ...对于%~1%~n1的解释。
  • del /?
  • echo /?
  • endlocal /?
  • for /?
  • if /?
  • move /?
  • rem /?
  • set /?
  • setlocal /?

而微软的文章关于Using command redirection operators可能也是有趣的了解这个小批量代码中使用重定向操作符>>

相关问题