VS2010中使用C#实现向EXCEL文档中写入数据


C#语言实现:创建、打开、读取、写入以及保存EXCEL文档的步骤和代码

步骤:

       1)创建Application对象

       2)打开excel文档——自己可定义是新建一个文档或者打开一个存在的excel文档

       3)指定要操作的sheet

       4)从excel中读取数据或者向excel中写入数据

       5)保存excel文档

接下来,我们按照步骤给出代码。


注:先在VS中添加程序集Microsoft.Office.Interop.Excel.dll

使用VS创建一个控制台应用程序

 实例1(已经过本人验证,可以运行): 

 //引用命名空间

using  System.Reflection;

using   Excel = Microsoft.Office.Interop.Excel;


namespace WriteExcelDemo2
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Applicaton对象
            Excel.Application xApp = new Excel.Application();

            xApp.Visible = true;

            #region 打开excel文档
            //得到workbook对象,可以用两种方式之一:下面是打开已有的excel文件
            Excel.Workbook xBook = xApp.Workbooks.Open(@"E:\7_PictureStatTool\Sample.xls",
                                   Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                                   Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                                   Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            //Excel.Workbook xBook = xApp.Workbooks.Add(Missing.Value); //新建一个excel文件的代码
            #endregion

            //指定要操作的Sheet,两种方式:
            Excel.Worksheet xSheet = xBook.Sheets[1];
            //Excel.Worksheet xSheet = xApp.ActiveSheet;

            //读取数据,通过Range对象
            Excel.Range rng1 = xSheet.get_Range("A1", Type.Missing);
            if(rng1.Value2 != null)
                Console.WriteLine(rng1.Value2);

            //读取数据,通过Range对象,但使用不同的接口得到Range
            Excel.Range rng2 = (Excel.Range)xSheet.Cells[1,3];  //得到第1行第3列的值 cells[行,列]
            if(rng2.Value2 != null)
                Console.WriteLine(rng2.Value2);


            //写入数据,将数据写入到指定的单元格
            //Excel.Range rng3 = xSheet.get_Range("C6", Missing.Value); //C6单元格
            //rng3.Value2 = "Hello";
            //rng3.Interior.ColorIndex = 6; //设备Range的背景色

            //动态写入数据,将数据写入到不同的单元格
            int i = 0;
            for (i = 1; i < 10; i++)
            {
                Excel.Range rng4 = (Excel.Range)xSheet.Cells[2, i];
                rng4.Value2 = i;
                rng4.Interior.ColorIndex = 6; //设备Range的背景色
            }

            //保存方式一:保存WorkBook
            xBook.SaveAs(@"E:\7_PictureStatTool\Data1.xls", Missing.Value, Missing.Value, Missing.Value,
                         Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange,
                         Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

            //保存方式二:保存WorkSheet
            xSheet.SaveAs(@"E:\7_PictureStatTool\Data2.xls", Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value, Missing.Value);

            //保存方式三:
            xBook.Save();

            xSheet = null;
            xBook = null;
            xApp.Quit();    //这一句非常重要,否则Excel对象不能从内存中退出
            xApp = null;

            Console.ReadKey();
        }
    }
}


实例2
步骤:1)创建一个Windows控制台应用程序,命名为WriteExcelDemo

            2)添加对Microsoft Excel 12.0 Object Library的引用

            3) 在Program.cs文件中添加如下引用

                   using MSExcel = Microsoft.Office.Interop. Excel;
                   using System.IO;
                   using System.Reflection;
           
              4)直接修改“Program.cs”文件的代码如下
class Program
{
    static void Main(string[] args)
    {
          object path;  //文件路径变量
          MSExcel.Application   excelApp; //Excel应用程序变量
          MSExcel.Workbook excelDoc;    //Excel文档变量
          path = @"C:\MyExcel.xls";         //excl文档保存路径
        
          excelApp = new MSExcel.Application();  //初始化
          //如果已存在,则删除
          if(File.Exists((string)path))
          {
                     File.Delete((string)path);
           }
 
          //由于使用的是COM库,因此有许多变量需要用Missing.Value,所以用定义一个Nothing代替,方便后续使用
           object Nothing = Missing.Value;
           excelDoc = excelApp.Workbooks.Add();

         //使用第一个工作表作为插入数据的工作表
          MSExcel.Worksheet  ws = (MSExcel.Worksheet)excelDoc.Sheets[1];
         //声明一个MSExcel.Range类型的变量rng
          MSExcel.Range rng;
          //获得A1处的表格,并赋值
          rng = ws.get_Range("A1", "A1");
          rng.Value2 = "数据";
          //获得A1处的表格,并赋值
          rng = ws.get_Range("A2", "A2");
          rng.Value2 = "hello";
            
           //WdSaveFormat为Excel文档的保存格式

           object format = MSExcel.XLFileFormat.xlWorkbookDefault;

           //将excelDoc文档对象的内容保存为XLSX文档

           excelDoc.SaveAs(path, format, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);

           //关闭excelDoc文档对象

           excelDoc.Close(Nothing, Nothing, Nothing);

          //关闭excelApp组件对象

          excelApp.Quit();

          Console.WriteLine(path + "创建完毕!");

    }

}

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值