用C#怎么把查询到的数据保存到excel中 我先把查询出数据放到dataset中,然后把dataset中数据一行一行写入excel中(不会),C#代码怎么写???我还希望excel表有列名,比如第一列为“编号”……高手请详细说明!!!如需要添加引用,请写出来,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用SQL 写入,这需要有一个excel文件.Path 为EXCEL文件名,带路径 public bool SaveToExcel(string Path, DataTable tmp) { //logTxtW.writelog("saveasd.txt", "0000000000000000000"); string insertCMD = "INSERT INTO [sheet1$] (", valuesStr = ""; for (int i = 0; i < tmp.Columns.Count; i++) { if(i!=tmp.Columns.Count -1) insertCMD = insertCMD + tmp.Columns[i].Caption + ","; else insertCMD = insertCMD + tmp.Columns[i].Caption +") "; } //logTxtW.writelog("saveasd.txt", "111111111111"); try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.Connection = conn; for (int i = 0; i < tmp.Rows.Count; i++) { valuesStr = " VALUES("; for (int j = 0; j < tmp.Columns.Count; j++) { if (j != tmp.Columns.Count - 1) { //if (tmp.Columns[j].GetType().ToString() != "System.String") // valuesStr = valuesStr + "convert(int,'" + tmp.Rows[i][j].ToString() + "'),"; //else valuesStr = valuesStr + "'" + tmp.Rows[i][j].ToString() + "',"; } else { //if (tmp.Columns[j].GetType().ToString() != "System.String") // valuesStr = valuesStr + "convert(int,'" + tmp.Rows[i][j].ToString() + "'))"; //else valuesStr = valuesStr + "'" + tmp.Rows[i][j].ToString() + "')"; } } cmd.CommandText = insertCMD + valuesStr; //logTxtW.writelog("saveasd.txt",cmd.CommandText ); cmd.ExecuteNonQuery(); } conn.Close(); return true; } catch (Exception ex) { logTxtW.writelog(DateTime.Now.ToString()+"SaveToExcel.txt","写入Excel发生错误:" + ex.Message); return false; } }不知能不能解决你的问题 本想把代码直接发到这里,结果说我回复内容过长,只好麻烦你到我博客去看看了。http://tb.blog.csdn.net/TrackBack.aspx?PostId=2306153 不好意思,发错链接了,重发一次。http://blog.csdn.net/smilebrid/archive/2008/04/19/2306153.aspx C# 委托与事件求助 求教,一个字符串生成二维数组的方法,急,谢谢! 如何实现C#中使picturebox控件根据DataGridView控件的所选行号使图片改变 请问下面的这些代码该怎么理解? c# .net 基础 写了个控制台程序提取word信息,但是我用WEB调用此程序后台处理就不能读取word,是什么原因 想请教个验证问题 C#语言 关于数据库的问题,请高手指点。 datagrid的数据绑定 本着有分就散,有问题就问的精神,问个问题..如何开发带有下拉框的控件. 问个正则
{
//logTxtW.writelog("saveasd.txt", "0000000000000000000"); string insertCMD = "INSERT INTO [sheet1$] (", valuesStr = "";
for (int i = 0; i < tmp.Columns.Count; i++)
{
if(i!=tmp.Columns.Count -1)
insertCMD = insertCMD + tmp.Columns[i].Caption + ",";
else
insertCMD = insertCMD + tmp.Columns[i].Caption +") ";
} //logTxtW.writelog("saveasd.txt", "111111111111");
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.Connection = conn;
for (int i = 0; i < tmp.Rows.Count; i++)
{
valuesStr = " VALUES(";
for (int j = 0; j < tmp.Columns.Count; j++)
{
if (j != tmp.Columns.Count - 1)
{
//if (tmp.Columns[j].GetType().ToString() != "System.String")
// valuesStr = valuesStr + "convert(int,'" + tmp.Rows[i][j].ToString() + "'),";
//else
valuesStr = valuesStr + "'" + tmp.Rows[i][j].ToString() + "',";
}
else
{
//if (tmp.Columns[j].GetType().ToString() != "System.String")
// valuesStr = valuesStr + "convert(int,'" + tmp.Rows[i][j].ToString() + "'))";
//else
valuesStr = valuesStr + "'" + tmp.Rows[i][j].ToString() + "')";
}
} cmd.CommandText = insertCMD + valuesStr;
//logTxtW.writelog("saveasd.txt",cmd.CommandText );
cmd.ExecuteNonQuery();
}
conn.Close();
return true;
}
catch (Exception ex)
{
logTxtW.writelog(DateTime.Now.ToString()+"SaveToExcel.txt","写入Excel发生错误:" + ex.Message);
return false;
}
}不知能不能解决你的问题