我有一个csv文件,看起来像这样:
,"CompanyNane",,,,,,,,,,,,,,,,,,,,,,,,,,,,Issue,,,,2021-02-27,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,Inspection Sheet ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,<Sub>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1/200,,,,page,,,,,
,Delivery No.,,,,,,,,SDK2302278101,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,W No.,,,,,,,,AFC1210-22SL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Manufacturer,,,,,,,,ManufacturerCompanyName,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Diameter,,,,,,,,6in,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Poly-type/Conductivity,,,,,,,,4H/n-type,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,face/Orientation,,,,,,,,Si/(0001) 4deg off,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Surface Finish,,,,,,,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,"Coordinate data (X, Y) (mm)",,,,,,,,,,,,,Thickness (um),,,,,,,,Carrier Conc. (cm-3),,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",70.0,,),,,,,14.67,,,,,,,,6829484552804830,,,,,,,,,,,,,,,,,,14.67
,,,,,,,(,0,,", ",60.0,,),,,,,15.18,,,,,,,,7269218633966170,,,,,,,,,,,,,,,,,,15.18
,,,,,,,(,0,,", ",45.0,,),,,,,15.35,,,,,,,,7101511576788490,,,,,,,,,,,,,,,,,,15.35
,,,,,,,(,0,,", ",30.0,,),,,,,15.32,,,,,,,,6874133261805120,,,,,,,,,,,,,,,,,,15.32
,,,,,,,(,0,,", ",15.0,,),,,,,15.2,,,,,,,,6701359170793300,,,,,,,,,,,,,,,,,,15.2
,,,,,,,(,0,,", ",0.0,,),,,,,15.13,,,,,,,,6638519222094540,,,,,,,,,,,,,,,,,,15.13
,,,,,,,(,0,,", ",-15.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-30.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-45.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-60.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-67.0,,),,,,,15.04,,,,,,,,7104368264503040,,,,,,,,,,,,,,,,,,15.04
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,-70,,", ",0.0,,),,,,,14.54,,,,,,,,6828523559220620,,,,,,,,,,,,,,,,,,14.54
,,,,,,,(,-60,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-45,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-30,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-15,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,15,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,30,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,45,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,60,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,70,,", ",0.0,,),,,,,14.65,,,,,,,,6866040706547180,,,,,,,,,,,,,,,,,,14.65
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,Ave.,,,,,,,,,,,,,15.15,,,,,,,,6950000000000000,,,,,,,,,,,,,,,,,,
,,,,,Uniformity(sigma/Ave.),,,,,,,,,,,,,1.6,,,,,%,,,3.1,,,,,,%,,,,,,,,,,,,
,,,,,MAX,,,,,,,,,,,,,15.35,,,,,,,,7270000000000000,,,,,,,,,,,,,,,,,,
,,,,,MIN,,,,,,,,,,,,,14.54,,,,,,,,6640000000000000,,,,,,,,,,,,,,,,,,
老实说,我甚至不知道从哪里开始,我没有控制这个csv文件,因为它是一个来自其他地方的传入文件,肯定有办法以某种方式取代这些逗号?我知道这个数据是非常丑陋的,顶线,我需要的问题与日期,然后开始在线,我需要所有的数据,从这一点向前。
线路:
,<Sub>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1/200,,,,page,,,,,
,Delivery No.,,,,,,,,SDK2302278101,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,W No.,,,,,,,,AFC1210-22SL,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Manufacturer,,,,,,,,ManufacturerCompanyName,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Diameter,,,,,,,,6in,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Poly-type/Conductivity,,,,,,,,4H/n-type,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,face/Orientation,,,,,,,,Si/(0001) 4deg off,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,Surface Finish,,,,,,,,CMP,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
让他们的数据水平,通常我可以做到这一点,只是不与所有这些逗号,它使他们的索引都不同!
线路:
,,,,,"Coordinate data (X, Y) (mm)",,,,,,,,,,,,,Thickness (um),,,,,,,,Carrier Conc. (cm-3),,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",70.0,,),,,,,14.67,,,,,,,,6829484552804830,,,,,,,,,,,,,,,,,,14.67
,,,,,,,(,0,,", ",60.0,,),,,,,15.18,,,,,,,,7269218633966170,,,,,,,,,,,,,,,,,,15.18
,,,,,,,(,0,,", ",45.0,,),,,,,15.35,,,,,,,,7101511576788490,,,,,,,,,,,,,,,,,,15.35
,,,,,,,(,0,,", ",30.0,,),,,,,15.32,,,,,,,,6874133261805120,,,,,,,,,,,,,,,,,,15.32
,,,,,,,(,0,,", ",15.0,,),,,,,15.2,,,,,,,,6701359170793300,,,,,,,,,,,,,,,,,,15.2
,,,,,,,(,0,,", ",0.0,,),,,,,15.13,,,,,,,,6638519222094540,,,,,,,,,,,,,,,,,,15.13
,,,,,,,(,0,,", ",-15.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-30.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-45.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-60.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,0,,", ",-67.0,,),,,,,15.04,,,,,,,,7104368264503040,,,,,,,,,,,,,,,,,,15.04
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,(,-70,,", ",0.0,,),,,,,14.54,,,,,,,,6828523559220620,,,,,,,,,,,,,,,,,,14.54
,,,,,,,(,-60,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-45,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-30,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,-15,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,15,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,30,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,45,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,60,,", ",0.0,,),,,,,-,,,,,,,,-,,,,,,,,,,,,,,,,,,
,,,,,,,(,70,,", ",0.0,,),,,,,14.65,,,,,,,,6866040706547180,,,,,,,,,,,,,,,,,,14.65
,,,,,,,(,,,", ",,,),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,Ave.,,,,,,,,,,,,,15.15,,,,,,,,6950000000000000,,,,,,,,,,,,,,,,,,
,,,,,Uniformity(sigma/Ave.),,,,,,,,,,,,,1.6,,,,,%,,,3.1,,,,,,%,,,,,,,,,,,,
,,,,,MAX,,,,,,,,,,,,,15.35,,,,,,,,7270000000000000,,,,,,,,,,,,,,,,,,
,,,,,MIN,,,,,,,,,,,,,14.54,,,,,,,,6640000000000000,,,,,,,,,,,,,,,,,,
这些行就像一个传统的csv文件,头部在顶部,数据在下面,但同样,逗号使这变得真实的棘手。任何帮助将不胜感激!只是想把这些数据列成一个列表。
下面是我的当前代码:
class CsvHelperTester
{
static void Main(string[] args)
{
var csvConfig = new CsvConfiguration(CultureInfo.InvariantCulture)
{
HasHeaderRecord = false,
HeaderValidated = null,
IgnoreBlankLines = true,
MissingFieldFound = null,
AllowComments = true,
Comment = ';',
Delimiter = ",",
TrimOptions = TrimOptions.Trim,
};
using (var streamReader = new StreamReader("C:filestuff"))
{
using (var csv = new CsvReader(streamReader, csvConfig))
{
var records = new List<GeneralData>();
while (csv.Read())
{
if (csv.GetField(1) == "")
{
csv.Read();
}
records.Add(csv.GetRecord<GeneralData>());
}
var WRecords = csv.GetRecords<WData>().ToList();
var columns = records;
}
}
}
public class GeneralData
{
[Index(1)]
public string Type { get; set; }
[Index(2)]
public string Value { get; set; }
}
public class WData
{
public string Coordinate_Data { get; set; }
}
}
我试着做了2个列表,1个用于水平数据,1个用于传统的csv数据,但是没有成功
3条答案
按热度按时间ctehm74n1#
要用单个逗号替换所有重复的逗号,请使用Regex.Replace
以字符串形式获取CSV文件,然后用途:
最后,将结果字符串转换回CSV
zf2sa74q2#
这有点难看,但我认为你可以使用寻找已知停止点沿着使用索引来查找它们的列的数据类的组合。
k97glaaz3#
这是我的解决方案。你只有一个输入样本,所以我的代码可能需要一些调整才能在整个输入上工作。