【问题标题】:CsvHelper.CsvRead returns nothingCsvHelper.CsvRead 不返回任何内容
【发布时间】:2021-05-06 04:44:48
【问题描述】:

我第一次使用 CSVHelper。

我有一个像这样的简单 CSV 文件:

a,b,c
1,2,3
4,5,6
7,8,9

当我尝试使用此代码阅读时:

using (var reader = new StreamReader(@"e:\a.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    // Do any configuration to `CsvReader` before creating CsvDataReader.
    using (var dr = new CsvDataReader(csv))
    {
        var dt = new DataTable();
        dt.Load(dr);
    }
}

csv 不返回任何内容:

{CsvHelper.CsvReader}
    ColumnCount: 0
    Configuration: {CsvConfiguration { AllowComments = False, BadDataFound = CsvHelper.BadDataFound, BufferSize = 4096, CacheFields = False, Comment = #, CountBytes = False, CultureInfo = , Delimiter = ,, DetectDelimiter = False, DetectDelimiterValues = System.String[], DetectColumnCountChanges = False, DynamicPropertySort = , Encoding = System.Text.UTF8Encoding, Escape = ", ExceptionMessagesContainRawData = True, GetConstructor = CsvHelper.GetConstructor, GetDynamicPropertyName = CsvHelper.GetDynamicPropertyName, HasHeaderRecord = True, HeaderValidated = CsvHelper.HeaderValidated, IgnoreBlankLines = True, IgnoreReferences = False, IncludePrivateMembers = False, InjectionCharacters = System.Char[], InjectionEscapeCharacter =  , IsNewLineSet = False, LeaveOpen = False, LineBreakInQuotedFieldIsBadData = False, MemberTypes = Properties, MissingFieldFound = CsvHelper.MissingFieldFound, Mode = RFC4180, NewLine = 
, PrepareHeaderForMatch = CsvHelper.PrepareHeaderForMatch, ProcessFieldBufferSize = 1024, Quote = ", ReadingExceptionOccurred = CsvHelper.ReadingExceptionOccurred, ReferenceHeaderPrefix = , SanitizeForInjection = False, ShouldQuote = CsvHelper.ShouldQuote, ShouldSkipRecord = CsvHelper.ShouldSkipRecord, ShouldUseConstructorParameters = CsvHelper.ShouldUseConstructorParameters, TrimOptions = None, UseNewObjectForNullReferenceMembers = True, WhiteSpaceChars = System.Char[] }}
    Context: {CsvHelper.CsvContext}
    CurrentIndex: -1
    HeaderRecord: null
    Parser: {CsvHelper.CsvParser}

有什么问题?我想不通。

【问题讨论】:

  • 对我来说效果很好。
  • this fiddle。在本地测试我按原样使用您的代码,保存更改文件位置。显然我在 DotNetFiddle 上做不到,所以我用StringReader 代替了它。我还测试了\n 而不是\r\n。见here
  • @Llama 很奇怪,我还是不行!
  • 直接复制我的例子行吗?
  • 我已经尝试了上面相同的代码,它对我来说工作正常。

标签: c# csvhelper


【解决方案1】:

测试下面的代码我认为问题是如何用StreamReader打开文件

using (var streamReader = File.OpenText(path))
{
   using (var csvReader = new CsvReader(streamReader, CultureInfo.CurrentCulture))
   {
       using (var dr = new CsvDataReader(csvReader))
       {
           var dt = new DataTable();
           dt.Load(dr);
       }
   }
}

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 2019-04-06
    • 2012-02-15
    • 2020-09-07
    • 2021-11-22
    • 2015-11-06
    • 2013-11-14
    • 2014-03-23
    • 2012-08-25
    相关资源
    最近更新 更多