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.
相关产品推荐
相关产品推荐

