如何重复CSV文件中大行旁边的小行? (VLOOKUP函数,也许?)

我可以用Excel或Regex做到吗?

我有一个小行(两列),其次是多行7列。 我不知道每个单元格的确切内容,我不知道每个小行后面有多less大行。

我想要的是移动下面的所有大行以下的小行。

我要这个:

title1, title2 bla, wla, bla, tra, bla, vla, bla bla, wa, bla, bla, sla, bla, pla bla, wa, sla, na, wla, kla, pla title3, title4 bla, wa, sla, na, wla, kla, pla bla, wa, bla, bla, sla, bla, pla bla, wla, bla, tra, bla, vla, bla bla, wla, bla, tra, bla, vla, bla bla, wa, bla, bla, sla, bla, pla title5, title6 bla, wla, bla, tra, bla, vla, bla bla, wa, bla, bla, sla, bla, pla title7, title8 bla, wa, bla, bla, sla, bla, pla ... ... 

成为这个:

 title1, title2, bla, wla, bla, tra, bla, vla, bla title1, title2, bla, wa, bla, bla, sla, bla, pla title1, title2, bla, wa, sla, na, wla, kla, pla title3, title4, bla, wa, sla, na, wla, kla, pla title3, title4, bla, wa, bla, bla, sla, bla, pla title3, title4, bla, wla, bla, tra, bla, vla, bla title3, title4, bla, wla, bla, tra, bla, vla, bla title3, title4, bla, wa, bla, bla, sla, bla, pla title5, title6, bla, wla, bla, tra, bla, vla, bla title5, title6, bla, wa, bla, bla, sla, bla, pla title7, title8, bla, wa, bla, bla, sla, bla, pla ... ... 

谢谢大家!

这是一个Java代码,它实现了你正在做的事情。 它读入你在上面的问题中给出的input文件,然后使用基本的parsing逻辑,写出你想要的格式。 逻辑的核心是检查当前行中逗号数量的行。 如果它只看到一个逗号,那么它将caching该行,这将在随后的行中没有使用单个逗号作为这些行的前缀。

 public static void main(String[] args) throws SQLException { File in = new File("C:\\path\\to\\input.txt"); File out = new File("C:\\path\\to\\output.txt"); BufferedReader br = null; BufferedWriter bw = null; try { br = new BufferedReader(new FileReader(in)); bw = new BufferedWriter(new FileWriter(out)); String header = ""; do { String line = br.readLine(); if (line == null) break; int numCommas = line.length() - line.replace(",", "").length(); if (numCommas == 1) { header = line; } else { bw.write(header + ", " + line); bw.newLine(); } } while (true); } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); if (bw != null) bw.close(); } catch (IOException ex) { ex.printStackTrace(); } } } 

如果你对Java没有足够的了解,那么你需要自己弄明白。 这是一个Java程序可以得到的裸骨。

这段代码在IntelliJ上进行了本地testing,似乎正在工作。