1、先将数据填充到DataTable中
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("姓名");
foreach (var student in Students)
{
DataRow dr = dataTable.NewRow();
dr[0] = student.ID.ToString();
dr[1] = student.Name.ToString();
dataTable.Rows.Add(dr);
}
//savePath为保存路径
var savePath = "XXXXXX.xls";
ExportExcel(dataTable, savePath);
2、将DataTable中的数据按流的方式写入
/// <summary>
/// 写入Excel
/// </summary>
/// <param name="dataTable"></param>
/// <param name="selectPath"></param>
public static bool ExportExcel(DataTable dataTable, string selectPath)
{
try
{
string title = "";
FileStream fs = new FileStream(selectPath, FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(new BufferedStream(fs), Encoding.Default);
for (int i = 0; i < dataTable.Columns.Count; i++)
{
title += dataTable.Columns[i].ColumnName + "\t";
}
title = title.Substring(0, title.Length - 1) + "\n";
sw.Write(title);
foreach (DataRow row in dataTable.Rows)
{
string line = "";
for (int i = 0; i < dataTable.Columns.Count; i++)
{
line += row[i].ToString().Trim() + "\t";
}
line = line.Substring(0, line.Length - 1) + "\n";
sw.Write(line);
}
sw.Close();
fs.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}