Tag: csv

从Google趋势下载.csv文件

我希望从我通过代码创建的url下载Google趋势数据。 当这些URL放入浏览器(我使用firefox)时会显示一个保存提示,我可以选择在查看浏览器时打开或保存文件。 但是,我希望通过代码包含Google趋势数据的相同.csv文件,我被困住了。 这是我的代码创建的链接之一:[提示下载,但是是谷歌] https://www.google.com/trends/trendsReport?hl=en-US&q=debt&geo=US&date=now%207-d&cmpt=q&content=1&export=1 我有这个链接的两个问题,它要么下载带有中文字符的.csv文件(我相信已损坏?),要么下载一些HTML(如下所示)。 当HTML保存为HTML文件并运行时,它会将我带到Google趋势主页,其中包含看似无用的URL: https://www.google.com/trends/#geo=US&date=now+7-d&cmpt=q&q=debt&hl=en-US&content=1 Redirecting // Accessing window.external members can cause IE to throw exceptions. // Any code that acesses window.external members must be try/catch wrapped /** @preserveTry */ try { if (top == self) { if (window.gtbExternal) { window.gtbExternal.setM(); } else { window.external.setM(); } } } catch(err) { } location.replace(“http://www.google.com/trends#geo\x3dUS\x26date\x3dnow+7-d\x26cmpt\x3dq\x26q\x3ddebt\x26hl\x3den-US\x26content\x3d1”) […]

如何对CSV文件使用SQL

我想使用C#在CSV文件上使用SQL查询。 java 这里有类似的东西。 c#有这样的东西吗?

Codegolf:使用C#中的最小代码将csv转换为HTML表

我正在为我自己的个人工具包lib添加一个函数来进行简单的CSV到HTML表转换。 我希望在C#中使用尽可能最小的代码来完成此操作 ,并且它需要能够处理超过~500mb的CSV文件。 到目前为止,我的两个竞争者是 通过分隔符将csv拆分为数组并构建HTML输出 使用表格标记来搜索替换分隔符 假设已经处理了文件/读/磁盘操作…即,我将包含所述CSV内容的字符串传递给此函数。 输出将由直接简单的HTML样式标记组成,是的,数据可能在其中有杂散逗号和中断。 更新:有些人问道。 如果有帮助的话,100%我处理的CSV直接来自excel。 示例字符串: A1,B1,C1 \ r \ n A2,B2,C2 \ r \ n

在EndOfData为true之前,Stream正在处理

我正在编写一个连接到FTP的方法,将csv文件读入流中,然后使用TextFieldParser处理数据。 这一切都在工作,除了我遇到的一个问题,当它突然读到CSV的一半时我突然得到一个ObjectDisposedExceptionexception。 我已经尝试将StreamReader和TextReader传递给TextFieldParser,但两者都会导致同样的问题。 我应该将CSV下载到临时本地目录然后读取它还是没有问题从FTP读取文件? 我想可能有一些服务器设置可能在读取整个文件之前超时流。 FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(“REMOVED.csv”); request.Credentials = new NetworkCredential(“xyz”, “*******”); using (WebResponse response = request.GetResponse()) { using (Stream stream = response.GetResponseStream()) { using (TextReader reader = new StreamReader(stream)) { using (TextFieldParser parser = new TextFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = true; parser.Delimiters = new string[] { “,” }; while (!parser.EndOfData) //exception is thrown […]

将CSV文件导入c#

我正在建立一个网站,其中一个要求是用户从他们的电子邮件客户端导出他们的联系人以将其导入网站。 因为每个电子邮件客户端以稍微不同的格式导出他们的联系人,所以我的头脑不得不以最好的方式来接近它。 因为我不知道这些字段是什么,或者分隔符是什么。 我只想找到主要的电子邮件客户端/地址簿(outlook,apple mail,entourage,thunderbird)。 所有这些都有完全不同的格式。 Entourage使用tab作为分隔符,其余的使用逗号等。我只需要拔出电子邮件地址和(如果有的话)名称。 名称变得棘手,因为一些客户端具有名字/姓氏的单独字段。 使用FileHelper是理想的,但在我可以连接解决方​​案之前,我似乎需要知道csv的结构。 如果可能的话,我宁愿不去编写我自己的csv解析器。 这是我对集体蜂巢思想的看法: 计划A. 阅读csv文件的第一行(所有格式都有一个标题作为第一行)并计算标签与逗号的数量。 从中确定分隔符。 使用某种类型的csv阅读器(如Lumenworks)为我提供文件其余部分的基本csv读取function。 在每个字段上执行正则表达式匹配以确定电子邮件列。 不知道如何找出用户的名字…… B计划 提示用户输入电子邮件客户端的类型,并为每个不同的客户端单独编码< – 看起来真的很笨重。 计划C. ….使用/购买已经执行此操作的现有组件?! (我肯定找不到一个!) 思考?

搜索1GB CSV文件

我有一个CSV文件。 每一行都由相同的格式组成,例如/ I,h,q,q,3,A,5,Q,3,[,5,Q,8,c,3,N,3,E,4,F,4,g,4,I,V,9000,0000001-100,G9999999990001800000000000001,G9999999990000001100PDNELKKMMCNELRQNWJ010, , , , , , ,D,Z, 我有一个Dictionary<string, List> 它通过打开文件,读取每一行,从行中获取元素并将其添加到字典来填充,然后关闭文件。 该字典在程序的其他地方使用,它接受输入数据到程序中,然后在字典中找到密钥并使用24个元素与输入数据进行比较。 StreamReader s = File.OpenText(file); string lineData = null; while ((lineData = s.ReadLine()) != null) { var elements = lineData.Split(‘,’); //Do stuff with elements var compareElements = elements.Take(24).Select(x => x[0]); FileData.Add(elements[27], new List(compareElements)); } s.Close(); 我刚刚被告知CSV文件现在将是800mb,并且其中有大约800万条记录。 我刚刚尝试在我的双核Win 32位笔记本电脑上加载4GB RAM进行调试,它抛出了OutOfMemoryException 。 我现在认为不将文件加载到内存中是最好的选择,但需要找到一种快速搜索文件的方法,以查看输入数据是否具有与element[27]相等的匹配项,然后获取前24个元素在该CSV中并将其与输入数据进行比较。 a)即使我坚持使用这种方法并使用16GB内存并且Windows 64bit会让字典中的许多项目都可以吗? […]

如何validation类属性?

背景: 我有一个CSV文件,我需要准备好并validation每一行中的每个元素,并创建一个具有有效数据的类的集合。 即CSV文件看起来像: EmpID,FirstName,LastName,Salary 1,James,Help,100000 2,Jane,Scott,1000 3,Mary,Fraze,10000 类看起来像: public class Employees { public int EmpID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Salary { get; set; } public string ErrorReason { get; set; } } 以下是每个字段所需的validation: 的EmpID: 它是一个必填字段,因此不能为空或空 它应该只是一个整数 它应该不超过2位数 它应该存在于数据库中(查询该数据库并检查员工是否以此empid退出。 FirstName(LastName的相同validation): […]

使用c#时读取csv文件,不要用双引号读取逗号

我正在使用c#阅读csv文件这里是一个小代码片段。 using (StreamReader readFile = new StreamReader(“C:\\temp\\” + whichTable)) { while ((line = readFile.ReadLine()) != null) { row = line.Split(‘,’); switch (row.Length) { case 5: if (counter == 0) { break; } else { v00.Add(Convert.ToInt32(Regex.Replace(row[0], @”[^\w\.@-]”, “”))); } if (row[1] == “”) { v01.Add((1)); } else { v01.Add(Convert.ToInt32(Regex.Replace(row[1], @”[^\w\.@-]”, “”))); } if(row[2]==””) { v02.Add(2); } […]

在c#中写入CSV时,数字字段会丢失前导零

我正在使用一个ASP.NET应用程序将我的客户数据导出为CSV,我需要我的客户电话号码与前导零。 我需要电话号码没有“ – ”且没有引用,由于我的应用程序的性质,我不能使用第三方产品,如EPPLUS。 我试图放一个空格,让CSV“理解”我需要电话号码作为文本,但这似乎不对。 我想知道如何使excel包括领先的零,而不使用第三方产品。 谢谢

使用FileHelper格式化属性

FileHelpers有一个很好的字段日期转换器: [FieldConverter(ConverterKind.Date, “MM-dd-yyyy”)] public DateTime MyDate; 但FieldConverter不适用于属性。 我必须处理使用属性的对象,所以我正在寻找这样的东西: [PropertyConverter(ConverterKind.Date, “MM-dd-yyyy”)] public DateTime MyDate { get; set; } 如何使用属性执行此操作?