2012-04-19 134 views
0

我已经在C#中创建了一个Windows应用程序,并且我将excel用作临时数据库。我能读取excel数据,但我不知道如何使用C#更新该文件中的单元格值。C#中,如何更新Excel文件中的特定单元格

的结构如下:

enter image description here

我想在完成执行后到现场进行更新到yes

+1

你会需要看看OpenXML的图书馆。为什么使用Excel作为临时数据库?可能有更好的选择。出于某种原因你是否需要使用Excel? – Trent 2012-04-19 12:46:34

+1

@Trent为什么要使用OpenXML?他不想以这种方式使用excel文件;他希望将其用于数据源,而不是对文档标记进行更改。 – emd 2012-04-19 13:00:38

+0

@emd - 哦...好点。最近我在大脑中使用了OpenXML。我会再喝一杯咖啡。 – Trent 2012-04-19 13:11:41

回答

1

我要更新

Extended Properties=HDR=NO; IMEX=1 

Extended Properties=HDR=YES; 

所以这将是:

connString = "Provider=Microsoft.Jet.OLEDB.4.0;Excel 8.0; Extended Properties=HDR=YES;Data Source=" + Directory.GetCurrentDirectory() + "/swtlist.xls"; 

OleDbConnection oledbConn = new OleDbConnection(connString); 

oledbConn.Open(); 
DataTable dt = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 

OleDbCommand cmd = new OleDbCommand("UPDATE [Sheet1$] SET done='yes' where id=1", oledbConn); 

cmd.ExecuteNonQuery(); 
1

如果您使用excel作为OLEDB数据源,那么您将使用SQL,就像它是数据库一样。 查询看起来有点像:

SELECT [Column Name One], [Column Name Two] FROM [Sheet One$]

在你的情况

UPDATE [Sheet One$] 
SET [column1]=value, [done]='yes' 
WHERE [some_column]=some_value 

如果你需要更多的周围帮忙看一下,有大量信息在此可用。 也许http://www.codeproject.com/Articles/8500/Reading-and-Writing-Excel-using-OLEDB将帮助您开始。

+0

我想更新单元格值不选择。 – 2012-04-19 12:48:39

+0

@VishalSuthar我为你更新了它。我的目的只是为了表明如果将标准SQL用作OLEDB源,标准SQL将用于查询excel文件。 – emd 2012-04-19 12:55:58

相关问题