我已经在C#中创建了一个Windows应用程序,并且我将excel用作临时数据库。我能读取excel数据,但我不知道如何使用C#更新该文件中的单元格值。C#中,如何更新Excel文件中的特定单元格
的结构如下:
我想在完成执行后到现场进行更新到yes
。
我已经在C#中创建了一个Windows应用程序,并且我将excel用作临时数据库。我能读取excel数据,但我不知道如何使用C#更新该文件中的单元格值。C#中,如何更新Excel文件中的特定单元格
的结构如下:
我想在完成执行后到现场进行更新到yes
。
我要更新
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();
如果您使用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将帮助您开始。
我想更新单元格值不选择。 – 2012-04-19 12:48:39
@VishalSuthar我为你更新了它。我的目的只是为了表明如果将标准SQL用作OLEDB源,标准SQL将用于查询excel文件。 – emd 2012-04-19 12:55:58
你会需要看看OpenXML的图书馆。为什么使用Excel作为临时数据库?可能有更好的选择。出于某种原因你是否需要使用Excel? – Trent 2012-04-19 12:46:34
@Trent为什么要使用OpenXML?他不想以这种方式使用excel文件;他希望将其用于数据源,而不是对文档标记进行更改。 – emd 2012-04-19 13:00:38
@emd - 哦...好点。最近我在大脑中使用了OpenXML。我会再喝一杯咖啡。 – Trent 2012-04-19 13:11:41