如何从Excel中把数据导入DataGridView中~~ 呵呵,劳驾了~~注意:是从Excel到DataGridView~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Excel也是oledb数据源,和Access一样操作。 不过有些特别的地方,如表头什么的可能需要手动处理。我以前做过一个项目,就是就预算人员的Excel的预算数据读取到MS SQL数据库中,和你这显示差不多。 我做过的一个,用存储过程实现,主要用到一个函数 openrowset 我有这么一个思路,大家看行不?先把EXCEL导入数据库中的临时表,DataGridView再从临时表中取数。。 上面的思路可实现。继续等待直接从Excel中把数据导入DataGridView中的方法。 #操作Excel(导入导出)- -Tag: C#操作Excel(导入导出) 前些日子,有很多朋友说需要C#导出到Excel的代码,现共享给大家/// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名称</param> /// <returns>返回一个数据集</returns> public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; DataSet ds = null; strExcel="select * from [sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(ds,"table1"); return ds; }/// <summary> /// 写入Excel文档 /// </summary> /// <param name="Path">文件名称</param> public bool SaveFP2toExcel(string Path) { try { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.OleDb.OleDbCommand cmd=new OleDbCommand (); cmd.Connection =conn; //cmd.CommandText ="UPDATE [sheet1$] SET 姓名='2005-01-01' WHERE 工号='日期'"; //cmd.ExecuteNonQuery (); for(int i=0;i<fp2.Sheets [0].RowCount -1;i++) { if(fp2.Sheets [0].Cells[i,0].Text!="") { cmd.CommandText ="INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+ fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+ "','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')"; cmd.ExecuteNonQuery (); } } conn.Close (); return true; } catch(System.Data.OleDb.OleDbException ex) { System.Diagnostics.Debug.WriteLine ("写入Excel发生错误:"+ex.Message ); } return false; } CKEditor取值 socket(beginsend)异步发送时是不是也要把数据写到缓冲区再发呀? 如何解决asp.net中文件的上传和下载超过4M的问题,有着独到的见解,等待高手的解决! 如何在一个DataGridView中同时显示来自同一个数据集但不同表的多个列? 窗体问题 【帮忙看看吧!】好晕啊。 产生不重复的随机数 dataGridView 简单问题 (Winfrom,100分!)动态生成页面的定时刷新问题 C#中用SOCKET如何构架白板服务器(高人帮忙,水平一般不要入内) 请教软件基本功能的实现问题? 如何实现记事本查找功能?
我以前做过一个项目,就是就预算人员的Excel的预算数据读取到MS SQL数据库中,和你这显示差不多。
先把EXCEL导入数据库中的临时表,DataGridView再从临时表中取数。。
继续等待直接从Excel中把数据导入DataGridView中的方法。
Tag: C#操作Excel(导入导出) 前些日子,有很多朋友说需要C#导出到Excel的代码,现共享给大家/// <summary>
/// 读取Excel文档
/// </summary>
/// <param name="Path">文件名称</param>
/// <returns>返回一个数据集</returns>
public DataSet ExcelToDS(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
DataSet ds = null;
strExcel="select * from [sheet1$]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
ds = new DataSet();
myCommand.Fill(ds,"table1");
return ds;
}
/// <summary>
/// 写入Excel文档
/// </summary>
/// <param name="Path">文件名称</param>
public bool SaveFP2toExcel(string Path)
{
try
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
System.Data.OleDb.OleDbCommand cmd=new OleDbCommand ();
cmd.Connection =conn;
//cmd.CommandText ="UPDATE [sheet1$] SET 姓名='2005-01-01' WHERE 工号='日期'";
//cmd.ExecuteNonQuery ();
for(int i=0;i<fp2.Sheets [0].RowCount -1;i++)
{
if(fp2.Sheets [0].Cells[i,0].Text!="")
{
cmd.CommandText ="INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+
fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+
"','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')";
cmd.ExecuteNonQuery ();
}
}
conn.Close ();
return true;
}
catch(System.Data.OleDb.OleDbException ex)
{
System.Diagnostics.Debug.WriteLine ("写入Excel发生错误:"+ex.Message );
}
return false;
}