Tag: csv

C#如何在命令行参数中实现破折号“ – ”选项?

我的C#类将创建一个GUI,它接收csv文件并相应地绘制线图。 目前,我的图表是使用GUI文件对话框绘制和保存的。 我现在要做的是使用命令行来读取,绘制和保存图形(不需要GUI)。 我可以知道如何使用“-f”标志调用我的Read和Plot类(文件路径,可以有多个csv文件)并使用“-o”标志保存绘制的图形(输出文件路径,只生成1个文件) )? 谢谢。

c#生成的csv文件通过电子邮件发送到Lotus note中的电子邮件底部

我有这个问题,使用.NET SmtpClient通过电子邮件发送的CSV附件出现在电子邮件的底部,而不是Lotus Note中的附件。 我只是不知道如何解决它,我无法访问客户端计算机使调试非常困难。 我可以采取哪些可能的步骤以及我需要注意的可能的问题? 代码如下: var smtpClient = new SmtpClient { Host = ConfigurationManager.AppSettings[“smtpServer”], Port = Convert.ToInt32(ConfigurationManager.AppSettings[“smtpPort”]) }; var mailMessage = new MailMessage(); mailMessage.Attachments.Add(new Attachment(attachment, contentType)); //ContentType = “text/csv”; //attachment is the temp file disk path 谢谢。

最快将csv导入数据库表

我已经实现了一个导入function,它从Asp.Net应用程序中的csv文件中获取数据。 大小的文件可以从几kb到最大10 MB不等。 但是,当导入发生时,如果文件大小> 50000,则大约需要20分钟。 这太过分了。 我需要在2-3分钟的时间内执行大约300000条记录的导入。 我知道导入到数据库还取决于数据库服务器的物理内存。我将批量创建插入脚本并执行。 我也知道使用SqlBulkCopy也是另一种选择,但在我的情况下,它不是插入产品的发生,而是更新和删除这是一个名为“FUNCTION CODE”的字段,决定是否插入,更新或删除。 关于如何解决这个问题的任何建议将不胜感激。 实现这一目标的一种方法是实现同时执行进程的多个线程,但我从未实现过直到日期的线程,因此我不知道通过实现相同的复杂性。 感谢和问候,弗朗西斯P.

如何使用Jet OLEDB打开CSV或XLS并获得表锁?

我试图找出当我通过Jet OLEDB将其作为数据库读取时如何读取/写入锁定CSV或XLS文件。 以下代码将CSV作为DB打开并将其加载到DataTable对象中: private DataTable OpenCSVasDB(string fullFileName) { string file = Path.GetFileName(fullFileName); string dir = Path.GetDirectoryName(fullFileName); string cStr = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=\”” + dir + “\\\”;” + “Extended Properties=\”text;HDR=Yes;FMT=Delimited\”;”; string sqlStr = “SELECT * FROM [” + file + “]”; OleDbDataAdapter da; DataTable dt = new DataTable(); try { da = new OleDbDataAdapter(sqlStr, cStr); […]

C#将.xls转换为.csv而不使用Excel

需要将.xls或.xlsx转换为.csv,而无需在C#/ ASP.net Web应用程序中使用Excel。 该应用程序目前正在使用NPOI.dll来实现某些function,但我没有看到关于该特定function的NPOI的codeplex wiki上的任何信息。 有没有人有什么建议? 谢谢

如何将EnumConverter与CsvHelper一起使用

我正在使用CsvHelper将类序列化为csv文件 – 直到这里一切正常。 现在我正在尝试找到一种方法将类的枚举属性转换为csv中的int值,因此我可以稍后使用CSV进行批量插入。 我在CsvHelper中发现了EnumConverter类,但我无法弄清楚如何正确使用它,因为我的所有尝试都失败了。 这是我的映射类代码 public sealed class MyMapping : CsvClassMap { public MyMapping() { EnumConverter enumConverter = new EnumConverter(typeof(CalendarExceptionEntityType)); Map(m => m.ExceptionEntityType).Index(0).Name(“EXCEPTION_ENTITY_TYPE”).TypeConverter(enumConverter); Map(m => m.ExceptionEntityIdentifier).Index(1).Name(“EXCEPTION_ENTITY_IDENTIFIER”); Map(m => m.OptionType).Index(2).Name(“OPTION_TYPE”); Map(m => m.StartDatetime).Index(3).Name(“EXCEPTION_START_DATETIME”); Map(m => m.EndDatetime).Index(4).Name(“EXCEPTION_END_DATETIME”); Map(m => m.DataSourceType).Index(5).Name(“DATA_SOURCE_TYPE”); Map(m => m.Description).Index(6).Name(“DESCRIPTION”); } } 和写作部分 using (StreamWriter file = new StreamWriter(filePath, false, Encoding.UTF8)) { CsvWriter […]

CSV字符串到DataTable

我有以下字符串,我想将其转换为DataTable “Id,Name ,Dept\r\n1,Mike,IT\r\n2,Joe,HR\r\n3,Peter,IT\r\n” 我可以使用String.Split创建它并迭代集合。 但我需要有效的方法(使用C#4.0function)如何使用LINQ或lambda创建表。

在文本文件的顶部添加一行

我的应用程序提取数据并将其附加到文本文件,但我需要找出如何以编程方式查看文本文件的第一行,看它是否与以下文本匹配: 日期时间,VirtualIP,VirtualPort,VirtualName,DestinationIP,DestPort,状态,期望 如果确实如此,那么继续执行正常function(下面的代码段),如果第一行与上面不同,那么我想在第一行插入上面的内容而不覆盖当前的那些。 我怎样才能做到这一点? (基本上把所有东西都按下了一行,这样我就可以在第一行添加我想要的东西了)…顺便说一句,它被保存为可以在excel中打开的csv文件。 try { // … for (int j = 0; j < memberStatus.Result.Count; j++) { VirtualMemberStatus status = memberStatus.Result[j]; //text += String.Format("Name: {4}, Member: {0}:{1}, Status: {2}, Desired: {3}" + Environment.NewLine, status.Member.Address, status.Member.Port, status.EffectiveStatus, status.DesiredStatus, virtualKey.Key); text += String.Format("{5},{4},{0},{1},{2},{3}" + Environment.NewLine, status.Member.Address, status.Member.Port, status.EffectiveStatus, status.DesiredStatus, virtualKey.Key.Replace(":", ","), DateTime.UtcNow); } } catch […]

Lumenworks Fast CsvReader – 由于引号字符,读取制表符分隔文件的exception错误

我正在使用Lumenworks Fast CsvReader,并且在阅读Kelley Blue Book的文件时发生了exception错误: 在位于’1169’的记录’1281’字段’5附近,CSV似乎已损坏 该文件以制表符分隔。 在那里我发现使用双引号,但我没有看到如何逃避它并正常恢复,因为它是制表符分隔数据。 –Characters in Text File– 12345 2013 RAV4 “Sport” Sport Utility 4D 2 –Source Code– using(CsvReader csvReader = new CsvReader(new StreamReader(filePath), false, ‘\t’, ‘”‘, ‘”‘, ‘#’, LumenWorks.Framework.IO.Csv.ValueTrimmingOptions.QuotedOnly)) { } 我尝试了许多不同的CsvReader设置而没有运气。 你用的是什么效果很好? 我用逗号分隔的文件没那么麻烦。

FieldConverter ConverterKind.Date“dd / MM / yyyy”exception

我尝试读取csv文件。 我的第五个记录是一个日期:03/11/2008 这是我的一段代码: [FieldConverter(ConverterKind.Date, “dd/MM/yyyy”)] public DateTime datum_5; 我的代码崩溃了: Result[] results= (Result[])engine.ReadFile(@”..\Data\expo.txt”); 并且有以下例外:行:1。列:41。字段:datum_5。 错误转换’03 / 11/2008’到类型:’DateTime’。 使用格式:’dd / MM / yyyy’ 当我这样做: [FieldConverter(typeof(ConvertDate))] public DateTime datum_5; 有了这个: internal class ConvertDate : ConverterBase { /// /// different forms for date separator : . or / or space /// /// the string format of date – first […]