windows C#,如何更新Excel文件中的特定单元格

798qvoo8  于 2022-12-19  发布在  Windows
关注(0)|答案(3)|浏览(251)

我已经用C#创建了一个Windows应用程序,我正在使用Excel作为临时数据库。我能够读取Excel数据,但我不知道如何使用C#更新该文件中的单元格值。
其结构如下:

我想在完成执行后将done字段更新为yes

u5i3ibmn

u5i3ibmn1#

我得更新一下

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();
vfh0ocws

vfh0ocws2#

如果你使用excel作为OLEDB数据源,那么你将像使用数据库一样使用SQL。查询看起来有点像:
第一个月
就你而言

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会帮助你开始。

gcmastyq

gcmastyq3#

要使用C#更新Excel,您只需获取工作表对象,并使用单元格地址(xlWorksheet .Cells[1,1])更新单元格。

using System;
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

namespace ConsoleApplication {
    
    public class Program {
        public string[,] someImportantData;
        public string[,] ExtractData(string path) {
            try {   
                // Excel Instance declartion
                Excel.Application xlApp = new Excel.Application();
                Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(path);
                Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; // Insert your sheet index here
                Excel.Range xlRange = xlWorksheet.UsedRange;  
               
                // Some code goes here

                // Update the excel worksheet
                xlWorksheet.Cells[1, 1] = 4;
                xlWorksheet.Cells[1, 2] = "Value";                    
                xlApp.Workbooks.Close();
                xlApp.Quit();

                Marshal.ReleaseComObject(xlWorksheet);
                Marshal.ReleaseComObject(xlWorkbook);
                Marshal.ReleaseComObject(xlApp);

                return someImportantData;
            }
            catch (Exception Ex) {
                throw Ex;
            }
        }
     }
}

相关问题