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

时间:2012-11-28 12:49:07

标签: c# asp.net csv

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

5 个答案:

答案 0 :(得分:1)

将制表符分隔文件导入Excel(或其他电子表格程序),然后将其导出为CSV格式。

答案 1 :(得分:0)

如果您使用的是sqlserver,则应该查看SSIS(SqlServer集成服务)。此工具将帮助您以高效的方式导入csv文件。您可以在此工具中配置分隔符,因此无需用逗号替换选项卡。

答案 2 :(得分:0)

我想出了这个在标签字符上分裂的内容:

   using(System.IO.StreamReader rdr = new System.IO.StreamReader(@"C:\text.txt"))
   {
            int counter = 0;
            string lne;
            while((lne = rdr.ReadLine()) != null)
            {
                string[] temp = lne.Split('\t');
                Console.WriteLine(temp[0]);
                Console.WriteLine(temp[1]);
                counter++;
            }
   }
   Console.ReadLine();

之后,您可以使用StringBuilder以逗号连接数组中的项目。

答案 3 :(得分:0)

如果是SQl Server 2005及更高版本,请右键单击要导入的数据库,然后选择任务,然后选择导入数据。指向制表符分隔文件,然后浏览剩余的屏幕。在最终屏幕上,就在您实际导入之前,您可以选择将其另存为 SSIS包(复选框)。这是迄今为止最简单,快速和有效的方式(没有从制表符分隔到csv的转换)导入它而无需编写任何代码,并且在向导结束时也可以使用代码,可用于自动执行任务,如果需要的话。

答案 4 :(得分:0)

默认情况下,SQL Server 2005中的BULK INSERT命令将使用选项卡作为字段分隔符,因此无需将制表符分隔的文本文件转换为csv格式。

事实上,将其转换为真正的csv会让事情变得更加困难。 BULK INSERT不会将引号视为字符串分隔符,因此一个真正的csv文件,其字符串中的逗号用引号封装的字符串将破坏导入。

有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms188365(v=sql.90).aspx