可否换种方式呢?给个建议:
用Aspose.Cells组件导参考:
http://blog.csdn.net/weiky626/article/details/7514637

解决方案 »

  1.   

    哥哥别逗好吗...你这是npoi导出? 在哪呢 我怎么没看见....
      

  2.   


    /// <summary>
            /// 将DataTable数据导出到Excel文件中(xls)
            /// </summary>
            /// <param name="dt"></param>
            /// <param name="file"></param>
            public static void TableToExcelForXLS(DataTable dt, string file)
            {
                HSSFWorkbook hssfworkbook = new HSSFWorkbook();
                ISheet sheet = hssfworkbook.CreateSheet("Test");            //表头
                IRow row = sheet.CreateRow(0);
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    ICell cell = row.CreateCell(i);
                    cell.SetCellValue(dt.Columns[i].ColumnName);
                }            //数据
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    IRow row1 = sheet.CreateRow(i + 1);
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        ICell cell = row1.CreateCell(j);
                        cell.SetCellValue(dt.Rows[i][j].ToString());
                    }
                }            //转为字节数组
                MemoryStream stream = new MemoryStream();
                hssfworkbook.Write(stream);
                var buf = stream.ToArray();            //保存为Excel文件
                using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))
                {
                    fs.Write(buf, 0, buf.Length);
                    fs.Flush();
                }
            }
      

  3.   

    MemoryStream ms = Export(dtSource, strHeaderText);
    你这个方法里面用了using了吧~http://msdn.microsoft.com/zh-cn/library/system.objectdisposedexception%28VS.80%29.aspx建议~
    using(ms)
    {
      ms.ToArray();
    }在方法内返回数组 不要返回MemberStream
      

  4.   

    谢谢moonwrite   我试试