发现代码换行不太好看:
string fileName=getExcelFileName();FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine="";
objFileStream = new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream,System.Text.Encoding.Default);for(int i=0;i<dt.Columns.Count;i++)
{
strLine=strLine+dt.Columns[i].ColumnName.ToString()+Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";for(int i=0;i<dt.Rows.Count;i++)
{
for(int j=0;j<dt.Columns.Count;j++)
{
strLine=strLine+dt.Rows[i][j].ToString()+Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";
}
objStreamWriter.Close();
objFileStream.Close();
string fileName=getExcelFileName();FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine="";
objFileStream = new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream,System.Text.Encoding.Default);for(int i=0;i<dt.Columns.Count;i++)
{
strLine=strLine+dt.Columns[i].ColumnName.ToString()+Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";for(int i=0;i<dt.Rows.Count;i++)
{
for(int j=0;j<dt.Columns.Count;j++)
{
strLine=strLine+dt.Rows[i][j].ToString()+Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";
}
objStreamWriter.Close();
objFileStream.Close();
下面有个例子,自己看看先
http://blog.sina.com.cn/u/4ab06e97010005x7
多谢你的帮忙,可是我有点看不懂哦,
下面一个方法是干什么的?
好象是在web下用的是吗?我在windows下怎么用应该?
/// 将DataSet导出到Excel文件。
/// </summary>
///金质打印通里的代码吧,长江支流弄得,改一下就能用
/// <param name="ds">数据集,注意本方法每个表最多导数据不要大于65536,如果要导更大数据和海量数据,请使用另一专用组件可指定每页sheet大小。</param>
/// <param name="fileName">文件名,如果已存在则替换。</param>
/// <param name="caption">Excel的窗口标题。</param>
public static void Export(System.Data.DataSet ds,string fileName,string caption)
{if (ds == null || ds.Tables.Count == 0)
{
return;
}GoldPrinter.ExcelExpert.ExcelBase excel = null;try
{
excel = new GoldPrinter.ExcelExpert.ExcelBase(); excel.Open(); excel.Caption = caption; //清空
excel.WorkSheets.Clear(); for(int i = 0 ; i < ds.Tables.Count ; i++)
{
string[,] arrTable = null;
arrTable = GetArrFromTable(ds.Tables[i]);
Excel.Range range = excel.GetRange(1,1,ds.Tables[i].Rows.Count,ds.Tables[i].Columns.Count);
GoldPrinter.ExcelExpert.RangeVisitor rv = new GoldPrinter.ExcelExpert.RangeVisitor(range);
rv.SetValue(arrTable);
excel.WorkSheets.ActiveSheet.Name = ds.Tables[i].TableName; excel.WorkSheets.Add().Activate();
}
excel.WorkSheets[0].Activate(); if (System.IO.File.Exists(fileName))
{
excel.SaveAs(fileName,true);
}
else
{
excel.SaveAs(fileName,true);
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
excel.Close();
}
}
//不考虑dt删除了行的情况
private static string[,] GetArrFromTable(System.Data.DataTable dt)
{
string[,] arrTable = new string[dt.Rows.Count,dt.Columns.Count];for(int i = 0 ; i < dt.Rows.Count ; i++)
{
for(int j = 0 ; j < dt.Columns.Count ; j++)
{
arrTable[i,j] = dt.Rows[i][j].ToString();
}
}return arrTable;
}
Web跟Windows大同小异