Tag: csv

如何一次读取一行csv文件并替换/编辑某些行?

我有一个60GB的csv文件,我需要对其进行一些修改。 客户希望对文件数据进行一些更改,但我不想重新生成该文件中的数据,因为需要4天时间才能完成。 如何逐行读取文件(不将其全部加载到内存中!),并在我去的时候对这些行进行编辑,替换某些值等等?

将标头添加到我的csv文件中

我想在我的CSV文件中添加标题,以便让数据反映标题。 如何在不必每次写入文件时添加它都可以解决这个问题? 意思是我只想在每次导出时添加一次标题。 当导出到相同的文件名时,它不应该创建相同标题的重复项。 这是我下面的代码写入文件: private void button6_Click_2(object sender, EventArgs e) { int count_row = dataGridView1.RowCount; int count_cell = dataGridView1.Rows[0].Cells.Count; MessageBox.Show(“Please wait while ” +comboBox5.Text+ ” table is being exported..”); for (int row_index = 0; row_index <= count_row – 2; row_index++) { for (int cell_index = 1; cell_index <= count_cell – 1; cell_index++) { textBox8.Text […]

如何通过逗号读取CSV文件,除非它是字段的一部分

我有以下C#代码读取CSV文件,目标是将其保存到SQL表: StreamReader sr = new StreamReader(tbCSVFileLocation.Text.ToString()); string line = sr.ReadLine(); string[] value = line.Split(‘,’); DataTable dt = new DataTable(); DataRow row; foreach (string dc in value) { dt.Columns.Add(new DataColumn(dc)); } while (!sr.EndOfStream) { value = sr.ReadLine().Split(‘,’); if (value.Length == dt.Columns.Count) { row = dt.NewRow(); row.ItemArray = value; dt.Rows.Add(row); } } 我遇到的问题是我不知道数据来自我的表格。 以下是CSV文件的示例: Name,Address,License Number,License Type,Year […]

在没有标题的C#Windows应用程序中将csv文件导入SQL Server数据库

我试图将.csv文件导入没有标题的SQL Server数据库。 这段代码工作正常,但有标题 – 如何跳过标题? 我需要更改代码以忽略.csv文件中的标头? 谢谢你们。 CSV文件格式: 001,0000002226,01,2011/03/27,07:07, 001,0000009392,01,2011/03/27,07:12, 001,0000002220,01,2011/03/27,07:17, 001,0000002121,01,2011/03/27,07:19, C#代码: private void btnBrowse_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.DefaultExt = “.csv”; ofd.Filter = “Comma Separated (*.csv)|*.csv” ; ofd.ShowDialog(); txtFileName.Text = ofd.FileName; } private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnimport_Click(object sender, EventArgs e) { […]

使用行选择将DataBase(.mdb / .accdb)导出到.csv

我应该做什么: 我需要加载数据库,搜索条目和导出选定的列。 问题: 我有一个DataGrid (没有DataGridView )列表并选择数据库条目,我无法得到任何解决方案只导出所选行; 作为分隔符。 编码我如何加载和列出数据库 using (OleDbConnection ODC = new OleDbConnection(“Provider = Microsoft.Jet.OLEDB.” + iOledDBVersion + “; Data Source = ” + connectionString)) { OleDbCommand ODCmd = new OleDbCommand(insertSQL); ODCmd.Connection = ODC; ODC.Open(); ODCmd.ExecuteNonQuery(); //Data-Adapter erstellen OleDbDataAdapter OleDbDataAdapter_Temp = new OleDbDataAdapter(insertSQL, ODC); OleDbCommandBuilder OleDbCommandBuilder_Temp = new OleDbCommandBuilder(OleDbDataAdapter_Temp); //Daten aus der Datenbank in […]

制表符分隔文件中的引号

我有一个简单的应用程序打开制表符分隔的文本文件,并将该数据插入数据库。 我正在使用这个CSV阅读器来读取数据: http : //www.codeproject.com/KB/database/CsvReader.aspx 这一切都很好! 现在我的客户端在文件的末尾添加了一个新字段,即“ClaimDescription”,在其中一些声明描述中,数据中包含引号,例如: “SUMISEI MARU NO 2” – 日本海 这似乎是我的应用程序的一个主要问题。 我得到一个exception,看起来像这样: 在位于’181’的记录’1470’字段’26附近,CSV似乎已损坏。 目前的原始数据:…… 在那个“原始数据”中,索赔说明字段确实显示带有引号的数据。 我想知道以前有没有人遇到过这个问题,并绕过它? 显然,我可以要求客户端更改他们最初发送给我的数据,但这是一个自动化过程,用于生成制表符分隔文件; 我宁愿把它作为最后的手段。 我以为我可以手动使用标准的TextReader打开文件,转义任何引号,将内容写回新文件,然后将该文件输入CSV阅读器。 值得一提的是,这些制表符分隔文件的平均文件大小约为40MB。 任何帮助是极大的赞赏! 干杯,肖恩

从列表/ SortedLists C#创建CSV字符串的有效方法?

我有一个实现异步SOAP的应用程序。 每50-100ms我将收到转换为SortedList对象的数据。 我还有一个预定义的IList ,其中包含SortedList中的所有可能的键。 我需要遍历IList并检查SortedList包含该密钥。 如果是,我将该值写入csv字符串; 如果没有,我写0.0到csv字符串。 注意: IList有400个密钥。 SortedList通常远小于400,最多约100。 string MyText = timestamp.ToString(“HH:mm:ss”); for (int i = 0; i < AllKeys.Count; i++) { double info; if (MySortedList.TryGetValue(AllKeys[i], out info)) { MyText += "," + info; } else { MyText += ",0.0"; } } MyText += "\n"; File.AppendAllText(filePath, MyText); 我目前正在使用上面的代码创建csv字符串,然后将其写入我的文件。 但是,我发现此代码滞后于我的应用程序。 我需要帮助提高效率,以便存储传入数据的时间少于50毫秒。 一些额外的东西: 我不必写入csv文件,我只需要快速存储数据。 (我可以稍后从序列化文件转换为我的csv文件) […]

如何跳过csv文件中的一些空行并继续读取包含数据的行? c#控制台应用程序

我的CVS文件中有5列,前两列有3行空行。 我想跳过这些空行。 我知道我必须遍历文件,但我不知道如何执行此过程。 任何建议都会很感激。 public class Program { static void Main(string[] args) { var filePath = Path.Combine(Directory.GetCurrentDirectory(), “Santander .csv”); var fileContents = ReadFile(filePath); foreach (var line in fileContents) { Console.WriteLine(line); } Console.WriteLine(“Press any key to exit…”); Console.ReadKey(); } public static IList ReadFile(string fileName) { var results = new List(); var target = File.ReadAllLines(fileName).ToList(); return results; […]

将数据从CSV读取到数组数组(C#)

我打开了CSV文件,但我无法弄清楚如何将结果数组拆分为另一个数组。 我目前有以下代码,希望它更能让我了解我的意思: private void ReadFileToArray(StreamReader file) { int i = 0; string[][] FP_GamesArray; while (!file.EndOfStream) { string line = file.ReadLine(); if (!String.IsNullOrWhiteSpace(line)) { string[] values = line.Split(‘,’); MessageBox.Show(values.ToString()); FP_GamesArray[i] = values; } i++; } } 有任何想法吗? 我得到两个错误:一个说Cannot implicitly convert type ‘string[]’ to ‘string’ ,第二个说Use of unassigned local variable ‘FP_GamesArray’ 。

如何将制表符分隔文件转换为CSV文件

我有一个标签分隔的文本文件,大约1.2 GB,我需要使用c#将其转换为CSV文件(逗号分隔)。 我必须将批量数据插入到sqlserver中,数据是在txt文件中,它是制表符分隔的,但我希望它首先转换为CSV然后插入到sql server或者是否有任何合适的方法将制表符分隔数据插入sql server数据库有效。