在使用c#时将公式写入现有Excel工作表的语法是什么?

时间:2012-07-05 21:39:16

标签: c# excel vba

我正在尝试使用c#将我在VBA中编写的内容转换为可执行文件。我的想法是将某些公式写入现有的excel工作簿。我有写入新工作簿的语法,但没有写入现有的工作簿。

2 个答案:

答案 0 :(得分:3)

尝试和测试

using System;
using System.Windows.Forms;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;

Namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        Public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Microsoft.Office.Interop.Excel.Application xlexcel;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;

            object misValue = System.Reflection.Missing.Value;
            xlexcel = new Excel.Application();

            // Open a File
            xlWorkBook = xlexcel.Workbooks.Open("C:\\MyFile.xlsx", 0, true, 5, "", "", true,
            Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

            // Set Sheet 1 as the sheet you want to work with
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            //////////////////////////////////////////////////////////
            // REST OF THE CODE HERE TO INTERACT WITH THE WORKSHEET//
            //////////////////////////////////////////////////////////

            //Once done close and quit Excel
            xlWorkBook.Close(true, misValue, misValue);
            xlexcel.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlexcel);
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Unable to release the Object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
    }
}

答案 1 :(得分:1)

您可以通过Workbooks.Open方法执行此操作,此article提供详细信息。

string workbookPath = "c:/SomeWorkBook.xls";
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
        0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
        true, false, 0, true, false, false);

然后,您可以通过Worksheets属性引用特定工作表。

Excel.Sheets excelSheets = excelWorkbook.Worksheets;