更新单元格中的值,所有其他单元格将自动更改

时间:2011-11-30 13:45:45

标签: c# excel

例如,我有一个电子表格excel。我想用C#来阅读它。

在电子表格中,我有两个或更多单元格:

A1 = 0
B1 = A1 + 7

如果我使用C#将A1的值更改为1,那么B1单元格是否会自动更新?

2 个答案:

答案 0 :(得分:1)

第二个单元格将自动更新。这是使用MS Excel对象模型的一些代码(包括Microsoft.Interop.Excel.dll):

using System;

namespace exceltest2
{
    using Microsoft.Office.Interop.Excel;

    internal class Program
    {
        private static void Main(string[] args)
        {
            Application excel = null;
            Workbook wb = null;
            try
            {
                // run Excel 
                excel = new Application();
                excel.Visible = false;

                // Open file
                wb = excel.Workbooks.Open(
                    @"D:\test.xlsx", Type.Missing, false, // Read-Only?
                    Type.Missing, Type.Missing, Type.Missing, 
                    Type.Missing, Type.Missing, Type.Missing, 
                    Type.Missing, Type.Missing, Type.Missing, 
                    Type.Missing, Type.Missing, Type.Missing);

                // Read worksheets
                Sheets sheets = wb.Worksheets;

                // Select worksheets
                Worksheet ws = (Worksheet)sheets.get_Item("Table1");

                Range range = (Range)ws.get_Range("A1", "A1");

                // Check Values #1
                Console.WriteLine(ws.get_Range("A1", "A1").Value2.ToString());
                Console.WriteLine(ws.get_Range("A2", "A2").Value2.ToString());

                range.Cells[1, 1] = 15;

                // Check Values #2
                Console.WriteLine(ws.get_Range("A1", "A1").Value2.ToString());
                Console.WriteLine(ws.get_Range("A2", "A2").Value2.ToString());
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                wb.Save();
                wb.Close(false, null, null);
                excel.Quit();
                Console.ReadLine();
            }
        }
    }
}

答案 1 :(得分:0)

您可以借助OleDbConnection,OleDbDataAdapter和DataSet访问带有C#的Excel表格。以下是一个示例,如何修改Excel文件和单元格值:http://csharp.net-informations.com/excel/csharp-excel-oledb-update.htm