现在的位置: 首页 > 综合 > 正文

导出Excel(二)

2014年01月27日 ⁄ 综合 ⁄ 共 1435字 ⁄ 字号 评论关闭

      有时候,我们的程序是需要发布到空间服务商提供的空间上的,而很多时候空间服务商出于安全方面考虑,并不提供对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中的时候,可能会出现一些小的问题。关于这个小问题,我会在后面的文章中说明。

抱歉!评论已关闭.