如何将CSV文件加载到a中System.Data.DataTable,根据CSV文件创建数据表?
常规的ADO.net功能是否允许这样做?
给出这样的字符串:
a,"字符串,带",各种各样的,"价值观和一些",引用
在忽略引用部分中的逗号的同时,基于逗号分割它的好算法是什么?
输出应该是一个数组:
["a","string,with","various","values,and some","quoted"]
可能重复:
CSV文件导入.Net
在.net中,是否有一个标准库应该用于读取csv文件?Web上的所有示例都会使用自己的csv阅读器/解析器,或者使用OleDb.
使用任何这些解决方案都不是问题,我只是想知道是否有一个普遍接受的库(不是我能找到的),或者其他任何"正确"的方法吗?
我想阅读CSV文件的内容并创建数据集.我这样想:
var lines = File.ReadAllLines("test.csv").Select(a => a.Split(';'));
DataSet ds = new DataSet();
ds.load(lines);
Run Code Online (Sandbox Code Playgroud)
但显然这是不正确的.
我有一个Excel电子表格在C#中转换为CSV文件,但在处理换行符时遇到问题.例如:
"John","23","555-5555"
"Peter","24","555-5
555"
"Mary,"21","555-5555"
Run Code Online (Sandbox Code Playgroud)
当我读取CSV文件时,如果记录没有以双引号(")开头,那么错误就会出现换行符,我必须将其删除.我有一些来自互联网的CSV读取器类,但我担心它们在换行时会失败.
我该如何处理这些换行符?
非常感谢大家的帮助.
heres是我到目前为止所做的,我的记录有固定的格式,一切都从一开始
JTW;...;....;...;
JTW;...;...;....
JTW;....;...;..
..;...;... (wrong record, line brak inserted)
JTW;...;...
Run Code Online (Sandbox Code Playgroud)
所以我检查了;每一行的[3]位置.如果我写的是真的,如果假病附加在最后*删除换行符)
我现在遇到问题,因为我将文件保存为txt.
顺便说一句,我通过在excell中保存为csv将excell spreadshit转换为csv.但我不确定客户是否这样做.
所以作为TXT的文件是完美的.香港专业教育学院检查了记录和总数.但现在我必须将它转换回csv,我真的很想在程序中做到这一点.有人知道吗?
这是我的代码:
namespace EditorCSV
{
class Program
{
static void Main(string[] args)
{
ReadFromFile("c:\\source.csv");
}
static void ReadFromFile(string filename)
{
StreamReader SR;
StreamWriter SW;
SW = File.CreateText("c:\\target.csv");
string S;
char C='a';
int i=0;
SR=File.OpenText(filename);
S=SR.ReadLine();
SW.Write(S);
S = SR.ReadLine();
while(S!=null)
{
try { C = S[3]; }
catch (IndexOutOfRangeException exception){
bool t = false;
while …Run Code Online (Sandbox Code Playgroud) 我知道如何阅读和显示.csv文件的一行.现在我想解析该文件,将其内容存储在数组中,并将这些数组用作我创建的某些类的值.
我想学习如何.
这是一个例子:
basketball,2011/01/28,Rockets,Blazers,98,99
baseball,2011/08/22,Yankees,Redsox,4,3
Run Code Online (Sandbox Code Playgroud)
如您所见,每个字段用逗号分隔.我创建了Basketball.cs和Baseball类,它是Sport.cs类的扩展,它包含以下字段:
private string sport;
private string date;
private string team1;
private string team2;
private string score;
Run Code Online (Sandbox Code Playgroud)
我知道这很简单,并且有更好的方法来存储这些信息,即为每个团队创建类,使日期成为DateType数据类型,以及更多相同但我想知道如何将此信息输入到类.
我假设这与getter和setter有关...我也读过字典和集合,但我想通过将它们全部存储在数组中来开始简单...(如果这有意义.. .随意纠正我).
这是我到目前为止所拥有的.它所做的就是阅读csv并在控制台上鹦鹉学舌:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Assign01
{
class Program
{
static void Main(string[] args)
{
string line;
FileStream aFile = new FileStream("../../sportsResults.csv", FileMode.Open);
StreamReader sr = new StreamReader(aFile);
// read data in line by line
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
line = sr.ReadLine();
}
sr.Close();
} …Run Code Online (Sandbox Code Playgroud)