You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSVReader跳过首行问题求助:如何阻止该默认行为?

解决CSVReader跳过首行的问题

看起来你遇到的是Acumatica的CSVReader默认将首行识别为表头并自动跳过的问题,这个场景很常见,调整构造函数参数就能轻松解决:

核心解决方案

Acumatica的CSVReader提供了构造函数重载,允许你指定文件是否包含表头。只需要在初始化时添加第三个参数false,明确告诉它没有表头,这样就不会跳过第一行数据了。

修改你的代码

把原来的CSVReader初始化代码:

using (CSVReader reader = new CSVReader(bytes, Encoding.ASCII.CodePage))

替换成:

using (CSVReader reader = new CSVReader(bytes, Encoding.ASCII.CodePage, false))

完整修改后的代码示例

if (UploadFile.AskExt() == WebDialogResult.OK) 
{ 
    StringBuilder filetext = new StringBuilder(); 
    PX.SM.FileInfo info = PXContext.SessionTyped<PXSessionStatePXData>().FileInfo["MyFileImportSessionKey"] as PX.SM.FileInfo; 
    Byte[] bytes = info.BinData; 
    // 新增false参数,禁用表头自动跳过逻辑
    using (CSVReader reader = new CSVReader(bytes, Encoding.ASCII.CodePage, false)) 
    { 
        reader.Reset(); 
        filetext.Append("FIRST:" + reader.GetValue(0));
        // 这里可以继续你的后续读取逻辑
    }
}

额外注意点

如果你的代码里还调用了reader.ReadHeader()方法,这个方法会主动跳过第一行来读取表头信息,记得把这个调用移除或者调整执行顺序,避免再次出现首行被跳过的情况。

内容的提问来源于stack exchange,提问作者EricP.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:48:27