C#打开新的Excel工作簿并添加数据 [英] C# Open new Excel Workbook and Add Data

查看:176
本文介绍了C#打开新的Excel工作簿并添加数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从使用C#的控制台应用程序中,我试图打开一个新的Excel工作簿并向其中添加数据.我可以很好地打开一个新的工作簿,但是由于我的范围对象为null,所以我遇到了向该工作簿添加数据的问题,而且我似乎无法加入刚刚打开的excel工作簿.我尝试了ActiveWorkbookSheets[1]和其他几个版本,但似乎无法弄清楚

From a console application using C# I am trying to open a new Excel workbook and add data to it. I can open a new workbook fine, but I am running into issues adding data to the workbook because my range object is null, and I can't seem to hook into the excel workbook that was just opened. I tried a variation of ActiveWorkbook, Sheets[1] and a couple of others and I can't seem to figure it out

using Microsoft.Office.Interop.Excel;
using System.Reflection;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Application xl = null;
            _Workbook wb = null;

            // Option 1
            xl = new Application();
            xl.Visible = true;
            wb = (_Workbook)(xl.Workbooks.Add(XlWBATemplate.xlWBATWorksheet));

            Worksheet sheet = xl.ActiveWorkbook.ActiveSheet;
            Range cell = sheet.Cells[1, 1];
            //ERROR on cell.Value("Test");
            cell.Value("Test");    
        }
    }
}

推荐答案

此代码可能会对您有所帮助.

This code may be help you.

using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "Excel Workbook|*.xls" })
            {
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    // creating Excel Application  
                    Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
                    // creating new WorkBook within Excel application  
                    Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
                    // creating new Excelsheet in workbook  
                    Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
                    // see the excel sheet behind the program  
                    app.Visible = true;
                    // get the reference of first sheet. By default its name is Sheet1.  
                    // store its reference to worksheet  
                    worksheet = workbook.Sheets["Sheet1"];
                    worksheet = workbook.ActiveSheet;
                    // changing the name of active sheet  
                    worksheet.Name = "Exported from gridview";
                    // storing header part in Excel  
                    for (int i = 1; i < DGView.Columns.Count + 1; i++)
                    {
                        worksheet.Cells[1, i] = DGView.Columns[i - 1].HeaderText;
                    }
                    // storing Each row and column value to excel sheet  
                    for (int i = 0; i < DGView.Rows.Count - 1; i++)
                    {
                        for (int j = 0; j < DGView.Columns.Count; j++)
                        {
                            worksheet.Cells[i + 2, j + 1] = DGView.Rows[i].Cells[j].Value.ToString();
                        }
                    }
                    // save the application  
                    workbook.SaveAs(sfd.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    // Exit from the application  
                    app.Quit();
                }
            }

我在工作中使用此代码将datagridview保存为excel表,并且效果很好.

这篇关于C#打开新的Excel工作簿并添加数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆