/// <summary>
/// 1 变为CSV文件流
/// 2 zip压缩
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
private byte[] ToCSVFileStream(DataTable ds, Dictionary<string, object> dic)
{
//替换中文列头名称
ds = DataTableColumeName_en2ch(ds, dic);
//DataTable -> CSV data
byte[] data = ExportDataToCSVStream(ds);
//处理完毕,删除并清理缓存
ds = null;
GC.Collect();
//zip
byte[] zipData = CSharpZiper.ZipData(data, 6);
return zipData;
}
#region DataTalbe -> CSV
/// 导出CSV格式[文件流]
/// </summary>
/// <param name="dataTable"></param>
/// <param name="csvPath"></param>
private byte[] ExportDataToCSVStream(DataTable dataTable)
{
if (dataTable == null || dataTable.Columns.Count == 0 || dataTable.Rows.Count == 0)
{
return null;
}
StreamEx writer = new StreamEx(true);
string column = string.Empty;

该方法将DataTable转换为CSV文件流,同时提供压缩成二进制流的功能,便于Excel导出和数据传输。首先,将中文列头替换为英文,然后将DataTable转化为CSV数据,再通过内存中压缩生成ZIP数据流,最后返回压缩后的二进制数据。
最低0.47元/天 解锁文章
484

被折叠的 条评论
为什么被折叠?



