导出excel问题
下面这个函数实现导出excel,但是不太清楚怎么分页,数据有26万条,一个sheet只可以放65536条,
所以我现在用它只可以导出一页,速度倒是可以,另外我用excel.Application这个方法也做了一个分页的例子,但是速度超级慢,不是一般的慢,那个函数就不发了,求高手给一个流方式分sheet导出exel的用法,谢谢大家!
public void ClearData(DataTable dtsouce, ProgressBar progreesBar, SaveFileDialog saveFileDialog)  
         {
             if (dtsouce.Rows.Count == 0)
             {
                 MessageBox.Show("没有数据可供导出!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             else
             {
                 saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
                 saveFileDialog.FilterIndex = 0;
                 saveFileDialog.RestoreDirectory = true;
                 saveFileDialog.CreatePrompt = true;
                 saveFileDialog.Title = "导出文件保存路径";
                 saveFileDialog.ShowDialog();
                 progreesBar.Visible = true;
                 Stream myStream;
                 myStream = saveFileDialog.OpenFile();
                 //StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
                 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
                 string str = "";
                 try
                 {
                     str = "编号" + "\t" + "产品名" + "\t" + "过程" + "\t" + "员工" + "\t" + "日期" + "\t" + "时间" + "\t" + "皮重厂商" + "\t" + "净重" + "\t" + "皮重";
                     sw.WriteLine(str);
                     //写内容
                     for (int j = 0; j < dtsouce.Rows.Count - 1; j++)
                     {
                         string tempStr = "";
                         tempStr = dtsouce.Rows[j]["F_SID"] + "\t" + dtsouce.Rows[j]["F_NAME"] + "\t" + dtsouce.Rows[j]["F_PROC"] + "\t" + dtsouce.Rows[j]["F_USER"] + "\t" + dtsouce.Rows[j]["F_DATE"] + "\t" + dtsouce.Rows[j]["F_TIME"] + "\t" + dtsouce.Rows[j]["F_NO"] + "\t" + dtsouce.Rows[j]["F_NW"] + "\t" + dtsouce.Rows[j]["F_TARE"];
                         sw.WriteLine(tempStr);
                         progreesBar.Value += 100 / dtsouce.Rows.Count;
                     }
                     sw.Close();
                     myStream.Close();
                     progreesBar.Value = 100;
                     MessageBox.Show("数据已经成功导出到:" + saveFileDialog.FileName.ToString(), "导出完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     progreesBar.Value = 0;
                     progreesBar.Visible = false;
                 }
                 catch (Exception e)
                 {
                     MessageBox.Show(e.Message, "友情提示", MessageBoxButtons.OK);
                 }
                 finally
                 {
                     sw.Close();
                     myStream.Close();
                 }
             }
         }
------解决方案--------------------
用NPOI,不用安装Office就可以写Excel,速度还不错
------解决方案--------------------写个自动新增sheet,在存数据