C#关于EXCEL读取和写入到数据库的问题 数据库是ORACLE1、可不可以把EXCEL的信息读取到datagridview中,然后直接保存到数据库中?2、可不可以通过编写的软件,直接把数据库中的信息显示到EXCEL中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把excel通过流媒体存储到数据库中,再将数据导出到EXCEL中 js 都可以操作Excel和数据库。C# 当然可以。 1、可以,将excel当做access数据库一样处理, 连接字符串 string sql="provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0';data source="+path;2、也可以, 用编写的软件就可以将数据库中的数据导入大excel中。 1. DataSet ds; string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=Excel 12.0;" + "data source=" + fileName; OleDbConnection myConn = new OleDbConnection(strCon); try { string strCom = " SELECT * FROM [Sheet1$]"; myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); ds = new DataSet(); myCommand.Fill(ds); }继续把 ds送给DGV就ok了2. 通过导出EXCEL就好。 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = F:\\站箱byliufushun.xls;Extended Properties=Excel 8.0"; OleDbConnection myConn = new OleDbConnection(strCon); string strCom = " SELECT * FROM [Sheet2$] "; try { myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, "[Sheet2$]"); DataTable table = new DataTable(); table = myDataSet.Tables[0]; 然后把table绑定到gridview上既可 到处excel同理也是绑定table DataSet ds = new DataSet(); try { // string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFileName + ";" + "Extended Properties=Excel 8.0;"; string strCommand = "SELECT * FROM [Sheet1$]";//Sheet1表名不能更改 System.Data.OleDb.OleDbConnection conn = new OleDbConnection(excelConn); conn.Open(); DataSet myDataSet = new DataSet(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCommand, conn); myCommand.Fill(myDataSet, "[Sheet1$]"); dataGridView1.DataMember = "[Sheet1$]"; dataGridView1.DataSource = myDataSet; //strExcel = string.Format("select * from [{0}$]", sheetName); //myCommand = new OleDbDataAdapter(strExcel, excelConn); //myCommand.Fill(ds, sheetName); // conn.Close(); } catch (Exception exc) { System.Windows.Forms.MessageBox.Show(exc.ToString()); } } private void btnUpdate_Click(object sender, EventArgs e) { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + _filePath + ";" + "Extended Properties=\"Excel 8.0;IMEX=1;\"";//连接 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = schemaTable.Rows[0][2].ToString().Trim();//得到excel表名 OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [" + tableName + "]", strConn);//查找excel数据 DataSet myDataSet = new DataSet();//定义数据 myCommand.Fill(myDataSet); DataTable dtAll = new DataTable("test"); dtAll.Columns.Add("station"); dtAll.Columns.Add("datetime"); dtAll.Columns.Add("depth"); dtAll.Columns.Add("number"); dtAll.Columns.Add("wavelength"); dtAll.Columns.Add("ag");一代码段。把excel当数据库来读写,跟操作数据库一样的。对excel的互操作,好像有一个叫MyXls的开源类库,做的不错,很方便。 c# Tab键/上下键的移动顺序 各位大哥进来看下,帮帮忙 SaveFileDialog打开后,如何显示默认文件名,又能选择保存位置? 如何知道FTP上的文件夹或者文件存不存在 datsGridView删除列的问题 在C#中的PANEL上插入图片的问题 关于鼠标划过显示文字的问题 求助:如何在C#程序中实现word文档导入数据库功能 如何给由DataSet生成的Excel文件中的某一单元加入超级链接??? Whidbey下找不到MessageBox了 c#根据媒体流里指定的标识去触发事件 设计模式 值对象使用 大鸟们来发表下自己的理解
2、也可以, 用编写的软件就可以将数据库中的数据导入大excel中。
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Extended Properties=Excel 12.0;" +
"data source=" + fileName;
OleDbConnection myConn = new OleDbConnection(strCon);
try
{
string strCom = " SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
ds = new DataSet();
myCommand.Fill(ds);
}继续把 ds送给DGV就ok了2. 通过导出EXCEL就好。
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet2$] ";
try
{
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet2$]");
DataTable table = new DataTable();
table = myDataSet.Tables[0];
然后把table绑定到gridview上既可 到处excel同理也是绑定table
try
{
//
string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFileName + ";" + "Extended Properties=Excel 8.0;";
string strCommand = "SELECT * FROM [Sheet1$]";//Sheet1表名不能更改
System.Data.OleDb.OleDbConnection conn = new OleDbConnection(excelConn);
conn.Open();
DataSet myDataSet = new DataSet();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCommand, conn);
myCommand.Fill(myDataSet, "[Sheet1$]");
dataGridView1.DataMember = "[Sheet1$]";
dataGridView1.DataSource = myDataSet; //strExcel = string.Format("select * from [{0}$]", sheetName);
//myCommand = new OleDbDataAdapter(strExcel, excelConn);
//myCommand.Fill(ds, sheetName); // conn.Close();
}
catch (Exception exc)
{ System.Windows.Forms.MessageBox.Show(exc.ToString());
}
} private void btnUpdate_Click(object sender, EventArgs e)
{
string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + _filePath + ";" +
"Extended Properties=\"Excel 8.0;IMEX=1;\"";//连接 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); string tableName = schemaTable.Rows[0][2].ToString().Trim();//得到excel表名 OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [" + tableName + "]", strConn);//查找excel数据 DataSet myDataSet = new DataSet();//定义数据 myCommand.Fill(myDataSet);
DataTable dtAll = new DataTable("test");
dtAll.Columns.Add("station");
dtAll.Columns.Add("datetime");
dtAll.Columns.Add("depth");
dtAll.Columns.Add("number");
dtAll.Columns.Add("wavelength");
dtAll.Columns.Add("ag");一代码段。把excel当数据库来读写,跟操作数据库一样的。
对excel的互操作,好像有一个叫MyXls的开源类库,做的不错,很方便。