版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分享來自網(wǎng)絡(luò)。教你用C#讀寫、刪除、更新excel表格記錄如下列圖所示,編一個(gè)程序,鼠標(biāo)單擊窗體視圖區(qū)右邊時(shí),獲取一對(duì)坐標(biāo)X,Y),點(diǎn)擊保存將點(diǎn)保存到excel表記錄中。此外,還實(shí)現(xiàn)了刪除、更新功能以及打開excel表功能。插入和更新比較簡(jiǎn)單,和操作一般的數(shù)據(jù)庫一樣,但是刪除稍微有點(diǎn)復(fù)雜,不能用delete from Sheet1$ where ID=x的方式刪除,自己可以去試,主要是excel數(shù)據(jù)之間的關(guān)系不像關(guān)系數(shù)據(jù)庫那么簡(jiǎn)單,oledb不提供這種方法。所以只能用專門操作excel表的Microsoft.Office.Interop.Excel名字空間下,先添加引用)來實(shí)現(xiàn)刪除某條記錄的功
2、能。源代碼:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.Reflection;using Excel = Microsoft.Office.Interop.Excel;namespace Leation public partial class FrmM
3、ain : Form /定義變量 private OleDbConnection connection = null; private OleDbCommand cmd = null; private OleDbDataAdapter dataAdapter = null; private DataSet dataSet = null; private string filePath = "G:points.xls" private string connStr = "provider=microsoft.jet.oledb.4.0;data source=G:p
4、oints.xls;extended properties='Excel 8.0;HDR=yes;IMEX=2'" private string selectStr = "select * from Sheet1$" private string cmdStr = null; private string OID = null; /對(duì)象ID private string x = null; private string y = null; private Excel.Application excelApp = null; private Exce
5、l.Workbook book = null; private Excel.Worksheet sheet = null; private Excel.Range range = null; /構(gòu)造函數(shù) public FrmMain() InitializeComponent(); /鼠標(biāo)移動(dòng)事件 private void splitContainer1_Panel2_MouseMove(object sender, MouseEventArgs e) this.lblxy.Text = "x=" + e.X.ToString() + " y=" + e
6、.Y.ToString(); /鼠標(biāo)按下事件 private void splitContainer1_Panel2_MouseDown(object sender, MouseEventArgs e) if (e.Button = MouseButtons.Left) this.tbX.Text = e.X.ToString(); this.tbY.Text = e.Y.ToString(); /刷新dataGridView1 private void RefreshTable() connection = new OleDbConnection(connStr); connection.O
7、pen(); dataAdapter = new OleDbDataAdapter(selectStr, connection); dataSet = new DataSet(); dataAdapter.Fill(dataSet); this.dataGridView1.DataSource = dataSet.Tables0; connection.Close(); /程序加載事件,初始化dataGridView1 private void FrmMain_Load(object sender, EventArgs e) this.RefreshTable(); /獲取一個(gè)可以用的OID
8、private string GetOID() int rowNum = this.dataGridView1.Rows.Count - 1; int maxOID = 0; int temp = 0; for (int i = 0; i < rowNum; i+) temp = int.Parse(this.dataGridView10, i.Value.ToString(); if (maxOID < temp) maxOID = temp; return (maxOID+1).ToString(); /插入一條記錄,即保存一個(gè)點(diǎn)信息 private void btnSaveP
9、nt_Click(object sender, EventArgs e) OID = this.GetOID(); x = this.tbX.Text; y = this.tbY.Text; if (x = "" | y = "") MessageBox.Show("x,y不能為空"); lblTip.Text = "保存失敗" return; connection = new OleDbConnection(connStr); connection.Open(); cmdStr = "insert in
10、to Sheet1$(ID,X,Y) values(" + OID + "," + x + "," + y + ")" cmd = new OleDbCommand(cmdStr, connection); int row=cmd.ExecuteNonQuery(); if (row > 0) lblTip.Text = "保存成功,插入行數(shù):" + row.ToString(); else lblTip.Text = "保存失敗" connection.Close(); thi
11、s.RefreshTable(); /刪除記錄 private void btnDelSelRow_Click(object sender, EventArgs e) int selRowIndex = this.dataGridView1.CurrentRow.Index + 2; /excel表中的行索引與dataGridView不一樣,這里注意 if (selRowIndex<1) MessageBox.Show("沒有選中行"); lblTip.Text = "刪除失敗" return; excelApp = new Microsoft.O
12、ffice.Interop.Excel.Application(); excelApp.Visible = false; /假設(shè)為true,刪除瞬間可以看見 office excel界面 /打開excel文件 book = excelApp.Workbooks.Open(filePath, Missing.Value,false, Missing.Value, Missing.Value, Missing.Value, true, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing
13、.Value, Missing.Value, Missing.Value); /獲取sheet1 sheet = (Excel.Worksheet)book.Worksheets1; /獲取編輯范圍 range = (Excel.Range)sheet.RowsselRowIndex, Missing.Value; /刪除整行 range.EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp); /保存編輯 book.Save(); /關(guān)閉book book.Close(Missing.Value, Missing.Value, Mis
14、sing.Value); /退出excel application,可以將前面的excelApp.Visible = false改為excelApp.Visible = true看看; excelApp.Workbooks.Close(); excelApp.Quit(); /刷新dataGridView1 this.RefreshTable(); /選中刪除行的上一行 if (selRowIndex - 3) > 0) this.dataGridView1.RowsselRowIndex - 3.Selected = true; this.lblTip.Text="刪除成功&
15、quot; /更新記錄 private void btnUpdate_Click(object sender, EventArgs e) int selRowIndex= this.dataGridView1.CurrentRow.Index; if (selRowIndex< 0) MessageBox.Show("沒有選中行!"); lblTip.Text = "更新失敗" return; OID = this.dataGridView10, selRowIndex.Value.ToString(); x = this.tbX.Text; y
16、= this.tbY.Text; if (x = "" | y = "") MessageBox.Show("x,y不能為空"); lblTip.Text = "更新失敗" return; connection = new OleDbConnection(connStr); connection.Open(); cmdStr = "update Sheet1$ set X="+x+",Y="+y+" where ID='"+OID+"
17、39;" cmd = new OleDbCommand(cmdStr, connection); int row = cmd.ExecuteNonQuery(); if (row >= 1) lblTip.Text = "更新成功,更新行數(shù):" + row.ToString(); else lblTip.Text = "更新失敗" connection.Close(); this.RefreshTable(); /選中更新的行 this.dataGridView1.RowsselRowIndex.Selected = true; private void btnOpenFile_Click(object sender, EventArgs e) OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "excel文件(*.xls)|*.xls" ofd.Title
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024盆景出租合同
- 04設(shè)備采購(gòu)合同關(guān)于醫(yī)療設(shè)備的復(fù)雜協(xié)議
- 高效委托加工合同協(xié)議書范本
- 2024年簡(jiǎn)單個(gè)人借款合同
- 2024寵物買賣合同范本模板
- 設(shè)備回購(gòu)協(xié)議合同模板2024年
- 品牌旗艦店合作合同樣本
- 2024年度云計(jì)算平臺(tái)建設(shè)合同
- 個(gè)人門面買賣合同范本
- 2024年冷凍供貨合同
- 周亞夫軍細(xì)柳(教師版)-十年(2013-2022)中考真題之課內(nèi)文言文(全國(guó)通用)
- 供水公司招聘抄表員試題
- 浙江省9+1高中聯(lián)盟2022-2023學(xué)年高二上學(xué)期期中考試地理試題(解析版)
- 酒店裝修施工組織設(shè)計(jì)方案
- 固定資產(chǎn)處置方案
- 大數(shù)據(jù)對(duì)智能能源的應(yīng)用
- 血液透析預(yù)防體外循環(huán)凝血的策略護(hù)理課件
- 檢驗(yàn)生殖醫(yī)學(xué)科出科小結(jié)
- 公共危機(jī)管理案例分析 (2)課件
- 通信工程冬季施工安全培訓(xùn)
- 《神奇糖果店》教學(xué)課件
評(píng)論
0/150
提交評(píng)論