1拖放控件
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有新絳免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
2代碼添加
如
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.ResizeRedraw = True
Dim ff As New DataGridView
ff.ReadOnly = False‘在這里設(shè)置是否可編輯單元格
ff.Parent = Me
ff.AllowUserToAddRows = True'這里設(shè)置是否顯示添加新行
ff.Columns.Add("aa", "啊啊")
ff.Columns.Add("a1", "啊")
End Sub
第一步,新建項(xiàng)目。
1
打開(kāi)vb.net,也就是打開(kāi)Microsoft visual studio 2010,第一次使用的時(shí)候設(shè)置為basic語(yǔ)言就行。新建項(xiàng)目--打開(kāi)excel。
2
新建成功。
END
第二步,添加引用。
1
“項(xiàng)目”--“添加引用”。
2
添加Microsoft Excel 14.0 Object Library。
END
第三步,添加打開(kāi)文件對(duì)話框工具。
1
工具箱--對(duì)話框--openfiledialog。
2
添加成功。
END
第四步,添加命令按鈕控件。
1
工具箱--公共控件--button。
在控件上右擊鼠標(biāo),進(jìn)入屬性設(shè)置。
2
text屬性設(shè)置為“打開(kāi)excel”。
3
name屬性也設(shè)置為“打開(kāi)excel”。
END
第五步,編寫(xiě)程序。
1
鼠標(biāo)雙擊命令按鈕,進(jìn)入編程界面,編寫(xiě)程序。
END
第六步,運(yùn)行程序。
1
鼠標(biāo)單擊啟動(dòng)調(diào)式圖標(biāo),程序開(kāi)始運(yùn)行。
2
單擊打開(kāi)excel命令按鈕,調(diào)用打開(kāi)文件對(duì)話框,選擇自己要打開(kāi)的excel文件。
END
第七步,保存程序。
第一次程序運(yùn)行完,關(guān)閉程序,出現(xiàn)關(guān)閉項(xiàng)目提示,選擇保存。
2
選好自己要保存的位置。
datagridview是.net中用來(lái)顯示或進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)處理的一個(gè)類(lèi)似于容器的控件,所以顯示出來(lái)的數(shù)據(jù),是以類(lèi)似表格的形式出現(xiàn)的,有行列。
private void ExportExcelFromDataGrid
( string filename , System.Web.UI.WebControls.DataGrid ToExcelGrid )
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="utf-8";
Response.AppendHeader ("Content-Disposition","attachment;filename="+Server.UrlEncode ( filename ) );
Response.ContentEncoding=System.Text.Encoding.Default;//設(shè)置輸出流為簡(jiǎn)體中文
Response.ContentType = "application/ms-excel";//設(shè)置輸出文件類(lèi)型為excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad =
new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
private void Button4_Click(object sender, System.EventArgs e)
...{
this.Panel1.Visible = false;
string filename = "內(nèi)訓(xùn)師.xls";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false; // *
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false; // *
this.DataGrid1.AllowSorting = false; // *
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1; // *
this.BindGrid();
this.ExportExcelFromDataGrid ( filename , this.DataGrid1 );
}
}
原理是利用DataGrid(其實(shí)是其父類(lèi)Control)的RenderControl方法輸出,整個(gè)DataGrid的外觀時(shí),將這些HTML代碼寫(xiě)入到緩沖區(qū),同時(shí)設(shè)置一下 ContentType ,讓Excel自己的自動(dòng)糾錯(cuò)功能將這個(gè)輸出存為一個(gè)Excel文件。
很多網(wǎng)上的朋友使用了以上這種可粘貼性強(qiáng)的代碼,發(fā)現(xiàn)不好用,反映的錯(cuò)誤類(lèi)似:
“LinkButton必須放在一個(gè)具有runat=server的標(biāo)簽的Form”之類(lèi)的話,而更多的網(wǎng)友說(shuō):
問(wèn)題很明顯,因?yàn)镈ataGrid沒(méi)有放在runat=server 的Form里面,加上就可以了。
我認(rèn)為,這種回答是很不準(zhǔn)確的,理由如下:
通常使用這種代碼的人他/她的DataGrid,最起碼已經(jīng)能用了,所以必定放在那個(gè)具有runat=server 的form標(biāo)簽里了。 報(bào)錯(cuò)是LinkButton,而不是DataGrid,很多細(xì)心的朋友很可能會(huì)說(shuō),我一直在用DataGrid,LinkButton在哪里來(lái)的。 其實(shí)真正的問(wèn)題是,上面的代碼沒(méi)有加了 // * 的那幾行代碼引起的。
當(dāng)然如果你的DataGrid,沒(méi)有排序,沒(méi)有使用那種按鈕列的話,是不會(huì)出問(wèn)題的。
言歸正傳,LinkButtion其實(shí)是你將DataGrid設(shè)為可排序時(shí)候,的表頭包含的,所以我要將DataGrid的排序設(shè)為False。
同樣得到上面的其實(shí),那些按鈕列,什么"編輯"、“刪除”等等這些,也是用了LinkButton,把他設(shè)為不可見(jiàn)就是了。
其實(shí)說(shuō)得再明白一點(diǎn)就是,將有可能產(chǎn)生LinkButton,或其他控件的東西都不讓它輸出就是了
vb.net dataGridView中的數(shù)據(jù)導(dǎo)出為excel表2010-03-01 15:03在form1窗體里添加一個(gè)dataGridView1(根據(jù)自己是使用情況要給他命名,符合命名規(guī)范喲。)在添加一個(gè)Button1(命名)。記著,dataGridView的屬性里有一個(gè)allowUsersToAddRows,要設(shè)置成FALSE。否則會(huì)發(fā)生一個(gè)錯(cuò)誤,當(dāng)然錯(cuò)誤是什么你自己試一下就ok了。
還有一點(diǎn)要注意:因?yàn)槟阋玫絜xcel表,所以要首先在項(xiàng)目里添加引用喲:項(xiàng)目(project)-添加引用(add reference)-Microsoft .Office.Interop.Excel
Button1的代碼:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'要先添加引用才能用到 Microsoft.Office.Interop.Excel.Application()
Dim MyExcel As New Microsoft.Office.Interop.Excel.Application()
MyExcel.Application.Workbooks.Add(True)
MyExcel.Visible = True
'去除dataGridView1的編號(hào)列(這里也可以不要)
Dim m As Integer
For m = 0 To DataGridView1.ColumnCount - 1
MyExcel.Cells(1, m + 1) = Me.DataGridView1.Columns(m).HeaderText
Next m
'往excel表里添加數(shù)據(jù)
Dim i As Integer
For i = 0 To DataGridView1.RowCount - 1
Dim j As Integer
For j = 0 To DataGridView1.ColumnCount - 1
If Me.DataGridView1(j, i).Value Is System.DBNull.Value Then
MyExcel.Cells(i + 2, j + 1) = ""
Else
MyExcel.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString
End If
Next j
Next i
End Sub
如圖所示,工具箱的“所有Windows窗體”中有,如果沒(méi)有,可選擇“選擇項(xiàng)”添加
DataGridView控件,放一個(gè)DataGridView1和Button1到窗體,下面是按鈕下代碼
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.DataGridView1.AllowUserToAddRows = False
DataGridView1.RowTemplate.Height = 200
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
For i = 1 To 3
Me.DataGridView1.Columns.Add("列" i.ToString, "列" i.ToString)
Me.DataGridView1.Rows.Add()
Next
Me.DataGridView1.Columns(0).Width = 100
Me.DataGridView1.Columns(1).Width = 500
Me.DataGridView1.Columns(0).Width = 300
End Sub
'自己設(shè)置相關(guān)需要的屬性即可
本文標(biāo)題:vb.net窗體表格,VB列表框
URL地址:http://jinyejixie.com/article24/hopoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、電子商務(wù)、做網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)