有时候,我们的程序是需要发布到空间服务商提供的空间上的,而很多时候空间服务商出于安全方面考虑,并不提供对Excel的COM支持,而程序又需要导出Excel的功能,这个时候,我们需要从另一个方面来着手。这里提供一个不通过COM导出Excel的例子。
该方法主要是通过写文件的方法把数据写入到Excel中。
/// <summary>
/// datatable导出Excel
/// </summary>
/// <param name="strFileName">文件名</param>
/// <param name="dt">datatable</param>
/// <returns>true:成功 false:失败</returns>
public static bool ExportExcel(string strFileName, DataTable dt)
{
File.Delete(strFileName);
string ExcelFileName = strFileName;
FileStream fs = new FileStream(ExcelFileName, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter w = new StreamWriter(fs, Encoding.Default);
try
{
// 写入Excel的列头
for (int i = 0; i < dt.Columns.Count; i++)
{
w.Write( dt.Columns[i].ColumnName.Trim()+ Convert.ToChar(9));
}
w.Write("/n");
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < iColunmCount; j++)
{
w.Write(dt.Rows[i][j].ToString().Trim() + Convert.ToChar(9));
}
w.Write("/n");
}
w.Flush();
w.Close();
}
catch
{
w.Close();
return false;
}
return true;
}
通过这种方法导出的Excel中可能含有一些特殊的符号,将这些Excel中的数据导入到DataTable中的时候,可能会出现一些小的问题。关于这个小问题,我会在后面的文章中说明。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/lsj_zrp/archive/2009/07/29/4391024.aspx
本文介绍了一种不使用COM组件直接将DataTable数据导出到Excel的方法,适用于受限的服务器环境,通过文件流操作实现数据写入。
3500

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



