将.txt文件导入到.xlsx文件

我正在处理将.txt文件(非分隔符)转换为Excel电子表格的脚本。 我的问题发生在我需要拉取5-10个字符之间的数据,并且每行有几组数据。

每行的每个字段中可以包含以下字符数,每行中有五个字段:

10 char 10 char 10 char 17 char 10 char 523452 D918 20120418 1FD7X2XTACEB8963820120606 523874 L9117244 20120409 3C6TDT5H0CG12130200000000 535581 G700 20120507 5GYFUD CT 00000000 

我基本上需要能够拉10,10,10,17,10并把它们放在他们自己的单元格连续在Excel中。 我可以像现在一样拉动单元格,但是它是基于空间划分的,这样当字段不占用全部空间的时候就会出现问题,并最终生成一个空白单元格的Excel表单。

你可以使用String.Substring (你的标签读取C# ):

 using System; using System.IO; class Test { public static void Main() { try { // Create an instance of StreamReader to read from a file. // The using statement also closes the StreamReader. using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { String Chunk1 = line.Substring( 0, 10); // First 10 String Chunk2 = line.Substring(10, 10); // Second 10 String Chunk3 = line.Substring(20, 10); // Third 10 String Chunk4 = line.Substring(30, 17); // Now 17 String Chunk5 = line.Substring(47); // Remainder (correction: Chunk2 --> Chunk5) Console.WriteLine("Chunks 1: {0} 2: {1} 3: {2} 4: {3} 5: {4})", Chunk1, Chunk2, Chunk3, Chunk4, Chunk5); } Console.ReadLine(); } } catch (Exception e) { // Let the user know what went wrong. Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } } } 

如果导入来自Excel(DATA,获取外部数据,来自文本,固定宽度),则不需要代码:

SO1228000的例子

您可以使用Mid()来获取string的特定部分。 如果一行被保存在currentLine ,则可以像这样提取字段:

 Dim fields(5) fields(1) = Mid(currentLine, 1, 10) fields(2) = Mid(currentLine, 11, 10) fields(3) = Mid(currentLine, 21, 10) 

等等。