Excel 数据的读取写入

本文介绍如何使用ADO.NET连接Excel文件并进行数据读取和写入操作。包括连接字符串配置、数据集填充及DataGridView展示等内容,并展示了如何利用Microsoft.Office.Interop.Excel进行更高级的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 try
            {
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D://CData.xls;"+"Extended Properties=Excel 8.0";
                string str = "select * from [Sheet1$]";

                OleDbCommand olecommand = new OleDbCommand(str, new OleDbConnection(strConn));
                OleDbDataAdapter oleadapter = new OleDbDataAdapter(olecommand);
                DataSet mydataset = new DataSet();
                oleadapter.Fill(mydataset, "[Sheet1$]");

                this.dataGridView1.DataSource = mydataset;
                this.dataGridView1.DataMember = "[sheet1$]";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

 

//需要添加 com 里的  microsoft.Excel 11.0(其他版本也可) 的引用

Microsoft.Office.Interop.Excel.Application xApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

            xApp.Visible = true;
            //得到WorkBook对象, 可以用两种方式之一: 下面的是打开已有的文件
            Microsoft.Office.Interop.Excel.Workbook xBook = xApp.Workbooks._Open(@"D:/a.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);
            //xBook=xApp.Workbooks.Add(Missing.Value);//新建文件的代码
            //指定要操作的Sheet,两种方式:

            Microsoft.Office.Interop.Excel.Worksheet xSheet = (Microsoft.Office.Interop.Excel.Worksheet)xBook.Sheets[1];
            //Excel.Worksheet xSheet=(Excel.Worksheet)xApp.ActiveSheet;

            //读取数据,通过Range对象
            Microsoft.Office.Interop.Excel.Range rng1 = xSheet.get_Range("A1", Type.Missing);
            // Console.WriteLine(rng1.Value2);
            rng1.Value2 = "1";

            //读取,通过Range对象,但使用不同的接口得到Range
            Microsoft.Office.Interop.Excel.Range rng2 = (Microsoft.Office.Interop.Excel.Range)xSheet.Cells[3, 1];
            //Console.WriteLine(rng2.Value2);
            rng2.Value2 = "2";

            //写入数据
            Microsoft.Office.Interop.Excel.Range rng3 = xSheet.get_Range("C6", Missing.Value);
            rng3.Value2 = "Hello";
            rng3.Interior.ColorIndex = 6; //设置Range的背景色

            //保存方式一:保存WorkBook
            xBook.SaveAs(@"D:/CData.xls",
            Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
            Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value,
            Missing.Value, Missing.Value);
            保存方式二:保存WorkSheet
            //xSheet.SaveAs(@"D:/CData2.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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值