C#—Excel操作

             /// <summary>
        /// 读写Excel
        /// </summary>
        /// <param name="data"></param>
        /// <returns>true为读或写成功,flase为失败</returns>
        /// 
        ///调用:Office_Excel.Write_Excel(Read_Write_Tabel);
        ///Office_Excel是类
        ///
        ///Read_Write_Tabel为数组首地址
        /// 
   
        
        //写excel
        public static bool Write_Excel(UInt16[] data)
        {
            Excel.Application my_Excel = new Excel.Application();//建立、启动Excel
            Excel.Workbook my_Book;//
            Excel.Worksheet my_Sheet;//工作薄
            try
            {
                //工作的个数
                my_Excel.SheetsInNewWorkbook = 1;
                //添加新工作簿
                my_Book = my_Excel.Workbooks.Add(Missing.Value);
                //指定要操作的Sheet,两种方式:
                my_Sheet = (Excel.Worksheet)my_Book.Sheets[1];


                Excel.Range rng2 = my_Sheet.get_Range("A1", Missing.Value);
                rng2.Value2 = "模 式";
                Excel.Range rng3 = my_Sheet.get_Range("C1", Missing.Value);
                rng3.Value2 = "数 据";
                //写Excel
                for (Int16 i = 0; i < 122; i++)
                {
                    string shc = "A" + (i + 2).ToString();//shc是位置: B列 i是行
                    rng2 = my_Sheet.get_Range(shc, Missing.Value);//获取当前的位置
                    if (i < 4)
                        rng2.Value2 = "F" + Convert.ToString(i); //写模式
                    else
                        rng2.Value2 = Convert.ToString(i);




                    string sh = "C" + (i + 2).ToString();//sh是位置: B列 i是行
                    rng3 = my_Sheet.get_Range(sh, Missing.Value);//获取当前的位置
                    rng3.Value2 = Convert.ToString(data[i]); //向该位置写内容
                    //rng3.Interior.ColorIndex = 6; //设置Range的背景色

                }


                //保存
                my_Sheet.SaveAs(System.Windows.Forms.Application.StartupPath + "\\输出数据.xls",
                        Missing.Value, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value, Missing.Value,
                        Missing.Value, Missing.Value, Missing.Value);


                my_Sheet = null;
                my_Book.Close();//使用my_Book.Close();当不存在.xls的时候会报错
                my_Excel.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出
                return true;
            }
            catch (Exception)//Exception ex
            {
              //  MessageBox.Show(ex.Message);
                my_Sheet = null;
                my_Book = null;//使用my_Book.Close();当不存在.xls的时候会报错
                my_Excel.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出 
                return false;


            }

        }



        //读excel  
        public static bool Read_Excel(UInt16[] data)
        {
            Excel.Application my_Excel = new Excel.Application();//建立、启动Excel
            Excel.Workbook my_Book = null;//
            Excel.Worksheet my_Sheet;//工作薄
            try
            {
                //打开导入的excel
                my_Book = my_Excel.Workbooks._Open(System.Windows.Forms.Application.StartupPath + "\\输入数据.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);
                //打开对应的工作薄
                my_Sheet = (Excel.Worksheet)my_Book.Sheets[1];
                ///读取
                for (byte i = 0; i < 122; i++)
                {
                    Excel.Range rng2 = (Excel.Range)my_Sheet.Cells[i + 2, 3];//前面是行  后面的列
                    data[i] = (UInt16)Convert.ToInt16(rng2.Value2);
                    ///显示
                   // this.textBox1.Text = this.textBox1.Text + (String)(Convert.ToString(Read_Write_Tabel[i])) + "、";


                }


                my_Sheet = null;
                my_Book.Close();//一定要关闭  而且不能使用my_Book=null;
                my_Excel.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出  
                return true;
            }
            catch (Exception)//Exception ex这里不报错
            {
               // MessageBox.Show(ex.Message);
                my_Sheet = null;
                my_Book = null;//使用my_Book.Close();当不存在.xls的时候会报错
                my_Excel.Quit(); //这一句是非常重要的,否则Excel对象不能从内存中退出 
                return false;
            }
        }



    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1623914208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值