前言
大家好,我是阿辉。
今天和大家一起来看看,C#我们在处理流文件时最常用的导出Excel如何操作文件。
在日常业务编码过程中,需求往往需要导出Office表格文件可以打开。我们的一般做法是使用它Office组件的帮助或更好的是使用NPOI组件导出(摆脱它Office组件的限制)。但这两种导出组件或多或少都有缺点。
比如NPOI当数据量超过60时,软件W当组件内部出现溢出问题时。目前还没有解决办法,只能更换其他组件或限制导出数据。
那么,有没有其他方法可以导出呢?Office可以打开的文件,此时我们的流文件.csv格式上场。
.csv它是一种逗号分隔值文件格式,其文件以纯文本种逗号分隔值文件格式。CSV文件由任何数量的记录组成,记录间由一个替换符分开;每个记录由字段组成,字段之间的分隔符是其他字符或字符串,最常见的是逗号或制表符。通常,所有的记录都有相同的字段序列。通常是纯文本文件。
它有很多好处,可存储大量数据,耗时少,易操作,可被Office可打开等。
对于许多与下位机硬件交互的数据,上位机转存的数据通常是csv文件。

try { stringstrBufferLine=""; StreamWriterstrmWriterObj=newStreamWriter(strFilePath,false,Encoding.UTF8); strmWriterObj.WriteLine(tableheader); for(inti=0;i<dt.Rows.Count;i ) { strBufferLine=""; for(intj=0;j<dt.Columns.Count;j ) { if(j>0) strBufferLine =","; strBufferLine =dt.Rows[i][j].ToString(); } strmWriterObj.WriteLine(strBufferLine); } strmWriterObj.Close(); strmWriterObj.Dispose(); returndt.Rows.Count; } catch(Exceptionex) { thrownewException(ex.Message); }
publicstaticDataTableCsv2Dt(stringfilePath,intn,DataTabledt) { try { varencoding=CommonFileHelper.GetFileEncodeType(filePath); StreamReaderreader=newStreamReader(filePath,encoding,false); inti=0,m=0; reader.Peek(); DataRowdr; while(reader.Peek()>0) { m=m 1; stringstr=reader.ReadLine(); if(m>=n 1) { string[]split=str.Split(','); dr=dt.NewRow(); for(i=0;i<split.Length;i ) { if(i==0) { nbsp; dr[i] = split[i];
}
else
{
if (string.IsNullOrEmpty(split[i]))
{
dr[i] = DBNull.Value;
}
else
{
dr[i] = Convert.ToDouble(split[i]);
}
}
}
dt.Rows.Add(dr);
}
}
reader.Close();
reader.Dispose();
return dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
很高兴您能看到这里,希望对你有帮助。