建议你数据量大的时候导出为CSV格式,这样速度比较快!你的字符串长度比较大,可以考虑使用StringBulider类来实现字符串相加
解决方案 »
- 关于textarea里面的值更新数据库的问题
- ASP.NET的一个奇怪的问题.大家帮忙!!
- 当Button控件的onClick事件触发时怎么先执行服务器端的关于onClick的函数,再执行一段客户端的JS代码?????
- 郁闷活动框架问题
- dropdownlist控件在不同浏览器中的大小问题
- 数据库导入导出重复问题?如何删除,SQL2000
- 在.cs页面里面,怎么写啊
- 我用WebClient的UploadfIle()方法时,出错如下错误?
- 也许微软设计asp.net机制时,本意并不需要aspx文件.
- 你是否遇到Session 变量不稳定的时候......
- 提问,.Net也有类似ASP中很多人写的conn.asp数据库连接的包含文件吗?
- 看来只有高手才能做
{
string sFile="";
string sArrFile="";
int oRow;
dvQuery=objQuery.GetQueryData(sSql); if (dvQuery.Table.Rows.Count>=65535)
{
oRow=0; for (int x=1;x<=GetFileNum(dvQuery.Table.Rows.Count);x++)
{
sFile=sFilePath+sFileName.Replace(".csv","_"+x.ToString()+".csv"); sArrFile=sArrFile+","+sFileName.Replace(".csv","_"+x.ToString()+".csv"); // Delete the file if it exists.
if (File.Exists(sFile))
{
File.Delete(sFile);
} StreamWriter sw = new StreamWriter(sFile,false, System.Text.Encoding.GetEncoding("GB2312"));
for(int j=0;j<dvQuery.Table.Columns.Count;j++)
{
sw.Write("\""+dvQuery.Table.Columns[j].ColumnName.ToString()+"\",");
}
sw.Write("\r\n");
for( int i=oRow; i<dvQuery.Table.Rows.Count; i++)
{
for(int j=0; j<dvQuery.Table.Columns.Count; j++)
{
sw.Write("\""+dvQuery.Table.Rows[i][j].ToString() + "\",");
}
sw.Write("\r\n"); oRow++;
if (oRow%65535==0)
i=dvQuery.Table.Rows.Count+1;
} sw.Close();
}
return sArrFile; }
else
{
sFile=sFilePath+sFileName;
sArrFile=sFileName; // Delete the file if it exists.
if (File.Exists(sFile))
{
File.Delete(sFile);
} StreamWriter sw = new StreamWriter(sFile,false, System.Text.Encoding.GetEncoding("GB2312")); oRow=1; for(int j=0;j<dvQuery.Table.Columns.Count;j++)
{
sw.Write("\""+dvQuery.Table.Columns[j].ColumnName.ToString()+"\",");
}
sw.Write("\r\n");
oRow++;
for( int i=0; i<dvQuery.Table.Rows.Count; i++)
{
for(int j=0; j<dvQuery.Table.Columns.Count; j++)
{
sw.Write("\""+dvQuery.Table.Rows[i][j].ToString() + "\",");
}
oRow++;
sw.Write("\r\n");
} sw.Close(); }
return sArrFile; }
public int GetFileNum(int iRecord)
{
iRecord++;
if (iRecord%65535==0)
return iRecord/65535;
else
return (iRecord-(iRecord%65535))/65535+1;
}
在msdn中看关于Worksheets的内容
Dim wksNewSheet As Excel.WorksheetSet wksNewSheet = Worksheets.Add
With wksNewSheet
' 在此处使用新工作表的
' 属性和方法。
End With