将 CSV 中的第一个和最后一个条目复制到工作表

Copy first and last entry from CSV to worksheet

我对此很陌生,但我需要一些帮助。

我有数据需要 csv 文件第 6 列(总共 554 个)中的第一个和最后一个条目,并将其复制到一个工作表中。 csvs 都有不同的范围。任何帮助将不胜感激。 谢谢

@ECHO OFF
SETLOCAL
SET "pickme="
FOR /f "tokens=6delims=," %%a IN (q28017030.csv) DO (
 IF NOT DEFINED pickme ECHO %%a
 SET "pickme=%%a"
)
ECHO %pickme%

GOTO :EOF

我使用了一个名为 q28017030.csv 的文件,其中包含我的测试数据。

big,fat,hairy,worksheet,under,discussion,here
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,data6,data7
data1,data2,data3,data4,data5,bingo,data7

制作中

discussion
bingo

我相信这就是您所需要的。

请注意,此解决方案假定第 1..6 列数据不包含逗号 - 唯一的逗号是 column-separators。此外,第 1..5 列不为空。

pickme 最初被清除,当 for 循环读取第一行时 undefined 也是如此。因此,该列被 echoed 并且 pickme 在遇到第一行 (header) 后定义。然后在读取每一行时更新它,因此我们需要 echo 遇到的最后一个值。


啊 - 550 左右 文件 不是

@ECHO OFF
SETLOCAL
(
FOR %%f IN (q28017030*.csv) DO ( 
 SET "pickme="
 FOR /f "tokens=6delims=," %%a IN (%%f) DO (
  IF NOT DEFINED pickme ECHO %%a
  SET "pickme=%%a"
 )
 CALL ECHO %%pickme%%
)
)>new.txt

type new.txt

转到:EOF

产生newfile.txt

为了测试方便,我设置为只扫描.csvs 模式"q28017030*.csv"。 *.csv 将扫描所有 CSV。