Bugün uzun bir süre için bana hizmet ve henüz hala kullanmak olan bir örnek göstermek istiyorum.
Biz ne olursa olsun, sütun veya sahip satır sayısı Excel tam bir DataTable vermek için bir örnek vereyim.
Orada bunu yapmak için pek çok yöntem olabilir, ancak bu yöntem Excel herhangi bir sürümü için çalışıyor çünkü ben gerçekten faydalı bulabilirsiniz. Excel'in daha yeni sürümleri ile compatilidad sorunlar için yalnızca 256 sütun anlaştım.
Biz gereken ilk şey Microsoft.Office.Interop.Excel için bir başvuru eklemek için ve biz aşağıdaki gibi yapın:

Excel için referans alma

İthalat Excel başvuru
Sonra bir form, bir düğme, dataGridView ve ilerleme çubuğu gerekir. Biz resimde görüldüğü olabilir:

Excel veri kümesi ihracat Başvuru formu
Şimdi tüm kod en önemli şey, herhangi bir tabloya adapte olması gerçekten basit olduğunu göstermek istiyoruz. Siz sorun olmadan yeniden mümkün olacak.
Imports System.Data Imports System.Data.SqlClient İthalat Microsoft.Office.Interop Public Class Form1 Yeni Private ds As DataSet Private Sub Form1_Load (System.EventArgs As System.Object, ByVal e ByVal sender As) Kolları MyBase.Load '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Bağlantı oluştur ve DataGridView doldurmak '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / As New SqlConnection Dim cnn ("Data Source = localhost \ sqlexpress; Initial Catalog = Northwind; Integrated Security = True") Yeni SqlDataAdapter Dim da ("müşteri Select * from", cnn) da.Fill (ds) = Ds.Tables (0) DataGridView1.DataSource End Sub BtnExportar_Click Private Sub (System.EventArgs As System.Object, ByVal e ByVal sender As) btnExportar.Click Kolları '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Excel nesne oluşturma '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim m_Excel Dim objLibroExcel Dim objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () objHojaExcel = objLibroExcel.Worksheets (1) objHojaExcel.Name = "Müşteriler" objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible () objHojaExcel.Activate '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Satır ve sütun kontrol etmek için iki değişken tanımlayın '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Integer = 1 Dim satır Integer = 1 Dim sütun '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Biz sütun başlıkları satırı aşağıdaki şekilde '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range ("A1").) (seçin Ds.Tables In Her dc (0) için. Sütunlar objHojaExcel.Range (ColumnName (sütun) ve 1). Değer = dc.ColumnName Sütun + = 1 Sonraki satır + 1 = '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Biz satır başlıkları biçimlendirmek '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Excel.Range Dim objRango = objHojaExcel.Range (: & ColumnName (ds.Tables (0) Columns.Count) ve "1". "A1") gibi objRango.Font.Bold = True objRango.Cells.Interior.ColorIndex = 35 objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). LineStyle = Excel.XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). LineStyle = Excel.XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). LineStyle = Excel.XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). LineStyle = Excel.XlLineStyle.xlContinuous objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). LineStyle = Excel.XlLineStyle.xlContinuous objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). LineStyle = Excel.XlLineStyle.xlContinuous '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Datatable tüm satırları yükleyin '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ProgressBar1.Maximum = ds.Tables (0). Rows.Count kolon = 1 ProgressBar1.Value = 0 Her ds.Tables yılında dr (0). Satırlar için kolon = 1 Ds.Tables In Her dc (0) için. Sütunlar objHojaExcel.Range (ColumnName (sütun) ve satır). Değer = dr (dc.ColumnName) Sütun + = 1 Sonraki satır + 1 = ProgressBar1.Value + = 1 Sonraki '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Otomatik olarak genişliğini ayarlamak Kullanılan tüm sütunları itibaren '/ / '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objRango = objHojaExcel.Range ("A1:" & ColumnName (ds.Tables (0) Columns.Count) & ds.Tables (0) Rows.Count.ToString..) objRango.Select () () objRango.Columns.AutoFit '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / Biz Excel görüntülemek için söyle '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / MsgBox (MsgBoxStyle.Information "Excel Komple verme", ". :: Solovb.net ::.") m_Excel.Visible = True End Sub As String Public Function ColumnName (Integer ByVal numarası) As String Dim kolon (256) Sütun (1) = "A" sütunu (2) = "B" sütunu (3) = "C" sütunu (4) = "D" sütunu (5) = "E" sütunu (6) = "F" sütunu (7) = "G" sütunu (8) = "H" sütunu (9) = "I" kolon (10) = "J" kolon (11) = "K" kolon (12) "L" = kolon (13) = "M" kolon (14) = "N" kolon (15) = "O" Sütun (16) = "P" kolon (17) = "S" kolon (18) = "R" kolon (19) = "S" kolon (20) = "T" kolon (21) = "U" kolon (22) = "V" kolon (23) = "W" kolon (24) = "X" kolon (25) = "Y" kolon (26) = "Z" Sütun (27) = "AA" kolon (28) = "AB" kolon (29) = "AC" kolon (30) = "MS" kolon (31) = "AE" kolon (32) = "AF" kolon (33) = "AG" kolon (34) = "AH" kolon (35) = "AI" kolon (36) = "AJ" kolon (37) = "AK" kolon (38) = "AL" kolon (39) = "AM" kolon (40) = "AN" kolon (41) = "AO" kolon (42) = "AP" kolon (43) = "AQ" kolon (44) = "AR ' kolon (45) = "AS" Sütun (46) = "AT" kolon (47) = "UA" kolon (48) = "AV" kolon (49) = "AW" kolon (50) = "AX" kolon (51) = "ay" kolon (52) = "AZ" kolon (53) = "BA" kolon (54) = "BB ' kolon (55) = "BC" kolon (56) = "BD" kolon (57) = "BE" kolon (58) = "BF" kolon (59) = "TR" kolon (60) = "BH" kolon (61) = "BI" kolon (62) = "BJ" kolon (63) = "BK" kolon (64) = "BL" kolon (65) = "BM" kolon (66) = "BN" kolon (67) = "BO" kolon (68) = "BP" kolon (69) = "BQ" kolon (70) = "Br" kolon (71) = "BS" kolon (72) = "BT" kolon (73) = "BU" kolon (74) = "BV" kolon (75) = "B" kolon (76) = "BX" kolon (77) = "tarafından" kolon (78) = "BZ" kolon (79) = "CA" kolon (80) = "CB" kolon (81) = "CC" kolon (82) = "CD" kolon (83) = "CE" kolon (84) = "CF" kolon (85) = "CG" kolon (86) = "CH" kolon (87) = "CI" kolon (88) = "CJ" kolon (89) = "CK" kolon (90) = "CL" kolon (91) = "CM" kolon (92) = "CN" kolon (93) = "CO" kolon (94) = "CP" kolon (95) = "CQ" kolon (96) = "CR" kolon (97) = "CS" kolon (98) = "CT" kolon (99) = "CU" kolonu (100) = "CV" kolon (101) = "CW" kolonu (102) = "CX" kolonu (103) = "CY" kolonu (104) = "CZ" kolon (105) = "DA" kolonu (106) = "DB" kolon (107) = "DC" kolon (108) = "DD" kolonu (109) = "DE" kolonu (110) = "DF" kolonu (111) = "DG" kolonu (112) = "DH" kolonu (113) = "İD" kolonu (114) = "DJ" kolonu (115) = "DK" kolonu (116) = "DL" kolonu (117) = "DM" kolonu (118) = "DN" kolonu (119) = "DO" kolonu (120) = "DP" kolonu (121) = "DQ" kolonu (122) = "DR" kolon (123) = "DS" kolonu (124) = "DT" kolonu (125) = "DU" kolonu (126) = "DV" kolonu (127) = "DW" kolonu (128) = "DX" kolonu (129) = "DY" kolonu (130) = "DZ" kolonu (131) = "EA" kolonu (132) = "EB" kolon (133) = "AK" kolonu (134) = "ED" kolon (135) = "EE" kolon (136) = "EF" kolonu (137) = "EG" kolonu (138) = "EH" kolonu (139) = "EI" kolonu (140) = "EJ" kolonu (141) = "EK" kolon (142) = "ON" kolonu (143) = "MS" kolon (144) = "EN" kolonu (145) = "EO" kolonu (146) = "EP" kolonu (147) = "eq" kolon (148) = "ER" kolon (149) = "ES" kolonu (150) = "ET" kolon (151) = "AB" kolonu (152) = "EV" kolonu (153) = "EW" kolonu (154) = "EX" kolonu (155) = "EY" kolonu (156) = "EZ" kolonu (157) = "FA" kolonu (158) = "FB" kolonu (159) = "FC" kolon (160) = "FD" kolon (161) = "FE" kolonu (162) = "FF" kolonu (163) = "FG" kolonu (164) = "FH" kolon (165) = "FI" kolonu (166) = "FJ" kolonu (167) = "FK" kolonu (168) = "FL" kolonu (169) = "FM" kolonu (170) = "Fn" kolonu (171) = "FO" kolonu (172) = "FP" kolonu (173) = "CF" kolon (174) = "FR" kolonu (175) = "FS" kolonu (176) = "MS" kolonu (177) = "FU" kolonu (178) = "PV" kolonu (179) = "FW" kolon (180) = "FX" kolonu (181) = "FY" kolon (182) = "FZ" kolon (183) = "GA" kolonu (184) = "GB" kolonu (185) = "GC" kolon (186) = "GD" kolon (187) = "GE" kolon (188) = "GF" kolon (189) = "GG" kolonu (190) = "GH" kolon (191) = "GI" kolon (192) = "GJ" kolonu (193) = "GK" kolonu (194) = "GL" kolon (195) = "GM" kolon (196) = "GN" kolon (197) "GO" = kolonu (198) = "GP" kolon (199) = "GQ" kolonu (200) = "GR" kolon (201) = "GS" kolon (202) = "GT" kolon (203) = "GU" kolonu (204) = "GV" kolonu (205) = "GW" kolonu (206) = "GX" kolonu (207) = "GY" kolon (208) = "GZ" kolon (209) = "HA" kolon (210) = "HB" kolonu (211) = "HC" kolonu (212) = "HD" kolon (213) = "HE" kolonu (214) = "HF" kolon (215) = "HG" kolonu (216) = "HH ' kolonu (217) = "HI" kolonu (218) = "HJ" kolonu (219) = "HK" kolonu (220) = "HL" kolon (221) = "HM" kolonu (222) = "HN" kolon (223) = "HO" kolon (224) = "HP" kolon (225) = "HQ" kolon (226) = "HR" kolon (227) = "HS" kolon (228) = "HT" kolon (229) = "HU" kolonu (230) = "HV" kolonu (231) = "HW" kolonu (232) = "H" kolonu (233) = "HY" kolonu (234) = "Hz" kolonu (235) = "IA" kolon (236) = "IB" kolonu (237) = "IC" kolon (238) = "ID" kolon (239) = "IE" kolon (240) = "EĞER" kolonu (241) = "IG" kolon (242) = "IH" kolonu (243) = "II" kolonu (244) = "IJ" kolonu (245) = "TK" kolonu (246) = "IL" kolonu (247) = "IM" kolon (248) = "IN" kolonu (249) = "IO" kolon (250) = "IP" kolonu (251) = "IQ" kolonu (252) = "R" kolon (253) = "IS" kolon (254) = "IT" kolon (255) = "IU" kolon (256) = "IV" İade sütun (sayı) End Function End Class
Bu yöntem bana hizmet vermiştir ve ben de bunu umuyoruz ... yorumlarınızı bırakın lütfen.
Bilgi Bitacoras.com ...
Bitacoras.com Puan Ver: Merhaba, Bugün ben uzun bir süre için bana hizmet ve henüz hala kullanmak olan bir örnek göstermek istiyorum. Biz Teng bu sütun sayısı veya satır bakılmaksızın Excel tam bir DataTable vermek için bir örnek yapacak .....
İyi ...
Mükemmel mesaj! Bana tam yardım ederiz, ama bir şüphe var .. Sql bağlantısı ile olduğu gibi .. Nasıl sütunlar yeniden adlandırmak yok!? Bu sql alanlarında adını getiriyor çünkü ..!
Umarım ve anladım ..
Teşekkür ederiz!
Ben kazanmak için gidiyorum ...
bir noktada faydalı olacaktır ...
Bu Excel 2007 için geçerli mi? Ben 2007 için daha önceki sürümleri için geçerlidir, ama o, geliştirmek için ihracat ile ilgili sorunlar vardı. Teşekkürler
Muazzam kaynak kodu. bana hizmet. q uzun gecikmiş oldu.
Aynı zamanda bir veri tablosunun ithalat ecxel gerekir rağmen. ancak bir veri çevresel olabilir ve daha sonra DataAdapter güncellenmesi ve datatable değişiklikleri kabul q bd kaydedilmiş olacaktır ... Ben yardımcı olabilir ya da bulmayı umuyorum .. teşekkürler
Merhaba çok teşekkür ederiz! Bu mükemmel!
Datagrid birkaç Datagrid olduğu durumda kullanılan belirtir Ama nerede acaba?
Masanın üzerinde bir çağrı konum ...
select * from (tablo adı)
Hangi alanları istediğiniz belirtmek istiyorsanız
* tablodan (alanları, alanları, alanları) seçin
ejm
araba araba, renk, yıl seçin
Ben değişkenleri dc ve dr 2 hata yaparlar bu örnek ile ilgili bir sorun var, bunu düzeltmek için ne yapabilirim?
Merhaba, bu deneyin:
Ds.Tables yılında DataRow (0) olarak her dr için. Satırlar ve DataColumn ds.Tables In Her dc olarak (0) için. Sütunlar
Bu çözülürse umuyoruz. Selamlar.
hola.
Bu chevere, ancak sütun adının bir parçası çok işlevsel değildir.
Blogumun çok daha küçük bir kod boyutu sınırlamaları ve olmayan karşıya olacak
jaysson.blogspot.com
hazır ve makale gitti
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
İyi makale, ama sorunsuz Excel 2007 çalışmaları ile benim bilgisayarda bir sorun var, ama Excel ile bilgisayarlar ile 2003 veya önceki çalışmıyor. Kütüphanelerin sorunu ithal olduğunu eğer herhangi bir excel çalışmaları ima beri herkes, biliyorum, ama bu sorunla karşılaştı.
Birisi şüphe çözebilir Bakalım.
Teşekkür ederim.
İyi ...
Mükemmel mesaj! Bana tam yardım ederiz, ama bir şüphe var .. Sql bağlantısı ile olduğu gibi .. Nasıl sütunlar yeniden adlandırmak yok!? Bu sql alanlarında adını getiriyor çünkü ..!
Umarım ve anladım ..
Teşekkür ederiz!
Public Sub ExportarDatosExcel (As String DataGridView, ByVal başlık ByVal DataGridView1)
Yeni Excel.Application Dim m_Excel gibi
m_Excel.Cursor = Excel.XlMousePointer.xlWait
m_Excel.Visible = True
Excel.Workbook Dim objLibroExcel = m_Excel.Workbooks.Add gibi
Excel.Worksheet Dim objHojaExcel = objLibroExcel.Worksheets (1)
ObjHojaExcel ile
. Visible = Excel.XlSheetVisibility.xlSheetVisible
. Activate ()
'Başlık
. Range ("A1: L1").) (Birleştirme
. Range ("A1: L1"). Value = "ENSTİTÜSÜ ARGENCAF"
. Range ("A1: L1"). Font.Bold = True
. Range ("A1: L1"). = 15 Font.Size
'Püskül
. Range ("A2: L2").) (Birleştirme
. Range ("A2: L2"). Değer = title
. Range ("A2: L2"). Font.Bold = True
. Range ("A2: L2"). = 12 Font.Size
Char olarak Const primeraLetra = "A"
Kısa = 3 gibi Const firstNumber
UltimaLetra gibi Char, Char Dim mektup
As Integer Dim sayısı, As Integer UltimoNumero
1 - Byte = Asc cod_letra (primeraLetra) Dim
String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec Dim
String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil Dim
Hesaplama kızı sütun 'Set formatı
"" String = As StrColumna Dim
"" String = As LetraIzq Dim
1 - Byte = Asc cod_LetraIzq (primeraLetra) Dim
Mektubu = primeraLetra
Number = firstNumber
Excel.Range Dim objCelda gibi
DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
Sonra c.Visible eğer
Mektubu = "Z", eğer
Mektubu = primeraLetra
cod_letra = Asc (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
Başka
cod_letra + = 1
Mektubu = Chr (cod_letra)
End If
strColumna = LetraIzq + Lyrics + Numero.ToString
objCelda =. Range (strColumna, Type.Missing)
objCelda.Value = c.HeaderText
= 8 objCelda.EntireColumn.Font.Size
'ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
C.ValueType midir Eğer GetType (Decimal) OrElse c.ValueType Sonra GetType (Çift) mı
objCelda.EntireColumn.NumberFormat = "#" + sepMil + "0" + sepDec + "00"
End If
End If
Sonraki
Excel.Range Dim objRangoEncab =. Range (primeraLetra + Numero.ToString, LetraIzq + Lyrics + Numero.ToString) gibi
objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
UltimaLetra = Gönder
String = LetraIzq UltimaLetraIzq Dim
'LOAD DATA
Dim i As Integer = Sayı + 1
DataGridViewRow DataGridView1.Rows gibi her ayında Listesi
LetraIzq = ""
cod_LetraIzq = Asc (primeraLetra) - 1
Mektubu = primeraLetra
cod_letra = Asc (primeraLetra) - 1
DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
Sonra c.Visible eğer
Mektubu = "Z", eğer
Mektubu = primeraLetra
cod_letra = Asc (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
Başka
cod_letra + = 1
Mektubu = Chr (cod_letra)
End If
strColumna = LetraIzq + Lyrics
"Burada yük olmalıdır
. Cells (i, strColumna) = IIf (IsDBNull (reg.ToString) "," reg.Cells (c.Index). Değer)
'. Cells (i, strColumna) = IIf (IsDBNull (atılmaz (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
'. Aralığı (strColumna + i, strColumna + i). In ()
End If
Sonraki
Excel.Range Dim objRangoReg gibi. = Range (primeraLetra + i.ToString, i.ToString strColumna +)
objRangoReg.Rows.BorderAround ()
objRangoReg.Select ()
i + = 1
Sonraki
UltimoNumero = i
Sütunların "Beraberlik hatları
LetraIzq = ""
cod_LetraIzq = Asc ("A")
cod_letra = Asc (primeraLetra)
Mektubu = primeraLetra
DataGridView1.Columns yılında olduğu gibi DataGridViewColumn Her c için
Sonra c.Visible eğer
. objCelda = Range (LetraIzq + Lyrics + primerNumero.ToString, LetraIzq + Lyrics + (UltimoNumero -. 1) ToString)
objCelda.BorderAround ()
Mektubu = "Z", eğer
Mektubu = primeraLetra
cod_letra = Asc (primeraLetra)
LetraIzq = Chr (cod_LetraIzq)
cod_LetraIzq + = 1
Başka
cod_letra + = 1
Mektubu = Chr (cod_letra)
End If
End If
Sonraki
'Kalın dış sınır çizin
. (. - 1) ToString primeraLetra + primerNumero.ToString, UltimaLetra UltimaLetraIzq + + (UltimoNumero) Excel.Range dim objRango = aralığı itibarıyla
objRango.Select ()
() objRango.Columns.AutoFit
objRango.Columns.BorderAround (1, Excel.XlBorderWeight.xlMedium)
End With
m_Excel.Cursor = Excel.XlMousePointer.xlDefault
End Sub
ToolStripButton2_Click_1 Private Sub (System.EventArgs As System.Object, ByVal e ByVal sender As) ToolStripButton2.Click Kolları
ExportarDatosExcel (DataGridView1, "ihracat")
End Sub
MÜKEMMEL! .... teşekkürler kardeşim, ve ithalat / ihracat Excel ve hiçbir şey için bir modül ile 3 gün süren çalıştı .... ama çözümü ile ben arequipa yine yıldızlar ... selam bakın:! ..
Bir şey değil. Ben size bir örnek olarak hizmet memnunum.
merhaba yükselen progressBar1 özür dileyeceğiz? ama o kısmı blokie yapmak çalışıyorum
Bu kod, bu yüzden benim iki kuruş ile işbirliği, bana çok yardım etti:
Ahsta ZZ sütun gelmesi "ColumnName" optimize (702 vd.)
İşte sana bir kod verir:
As String Public Function ColumnName (Integer ByVal numarası)
As String Dim kolon (703)
Sütun (1) = "A"
sütunu (2) = "B"
sütunu (3) = "C"
sütunu (4) = "D"
sütunu (5) = "E"
sütunu (6) = "F"
sütunu (7) = "G"
sütunu (8) = "H"
sütunu (9) = "I"
kolon (10) = "J"
kolon (11) = "K"
kolon (12) "L" =
kolon (13) = "M"
kolon (14) = "N"
kolon (15) = "O"
Sütun (16) = "P"
kolon (17) = "S"
kolon (18) = "R"
kolon (19) = "S"
kolon (20) = "T"
kolon (21) = "U"
kolon (22) = "V"
kolon (23) = "W"
kolon (24) = "X"
kolon (25) = "Y"
kolon (26) = "Z"
Dim i = 27
Ltr1 için = 1 To 26
Ltr2 için = 1 To 26
sütun: (i) = kolonu (Ltr1) ve sütunun (Ltr2)
i + = 1
Sonraki
Sonraki
İade sütun (sayı)
End Function
TECKNOCK,! Yardımlarınız için çok teşekkür ederim, ama yarattığımız kitabın izin Excel 97-2003 maksimum sütunlar ile uyumlu olup olmadığını 256 (IV) olduğunu unutmayın. Yorum hesaba almak gibi.
Elisha
Ben doğru yerel uygulama funcioana koşuyorum, ama ben bir web sitesinde yüklediğinizde excel yaratmaz ama hata alamadım zaman
Benim sql A TOPRAKLI haciend arıyorum
ben yapıyordum ama AJA Yapmayacağız gibi
Ben burada olan her şekilde yapmaya çalışacağım yardıma ihtiyacım var ve ben hata alıyorum
El, size mükemmel funca maksimum konum.
[...] [...]
çok iyi, tebrikler iyi yazı okudum ve istişare ettik edilir
Teşekkür ederiz! Bu çok yararlı oldu
Hey kod bana çalışmayan bir da.Fill hataları işaretler (ds)
Ben hata işaretlemek SqlException bulunmadı
bana yardım edebilir
bir soru excel doğrudan yükleme sql sorgusu yapabilir?
önceden yoluyla
merhaba bütün agradesco katkınız ilk arkadaş.
Seni ben office 2010 yüklü ve benim sorunum olamaz, hangi gösterir referans bulamıyorum bir sorun olduğunu unutmayın.
size agradeseria bazı tavsiyeler.
Merhaba, çok iyi bir katkı Ben arıyordum ne olduğunu ... ama geliştirme sunucudan çalıştırdığınızda mükemmel çalışır, ama başka bir pc den web eriştiğinizde hiçbir şey ... hiçbir hata yapar ama kayıt olmayan birşeyi yok ...
Herkes bunu düzeltmek nasıl biliyor?
Çok teşekkür ederim, bana örnek oldu ama doğrudan bir tablo içinde depolanan değerleri bana bir Excel dosyası oluşturan bir fonksiyon oluşturmak için bir temel olarak ne dejor durumda birisi için yararlı olduğunu
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz sütun başlıkları satırı aşağıdaki şekilde
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Range ("A1").) (seçin
As Integer Dim I = 0
As Integer Dim Lncol = 1
DgvSocios.Columns In Her dc için
DgvSocios.Columns.Item (I). Visible = True Sonra ise
objHojaExcel.Range (ColumnName (lncol) & 1). Değer = dgvSocios.Columns.Item (I). HeaderText
lncol + = 1
End If
I + = 1
Sonraki
satır + 1 =
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz satır başlıkları biçimlendirmek
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Excel.Range Dim objRango = objHojaExcel.Range (: & ColumnName (lncol) ve "1" "A1") gibi
objRango.Font.Bold = True
objRango.Cells.Interior.ColorIndex = 35
objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). LineStyle = Excel.XlLineStyle.xlContinuous
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). LineStyle = Excel.XlLineStyle.xlContinuous
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). LineStyle = Excel.XlLineStyle.xlContinuous
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Datatable tüm satırları yükleyin
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ProgressBar1.Maximum = dgvSocios.Rows.Count
kolon = 0
ProgressBar1.Value = 0
ProgressBar1.Visible = True
Integer = 0 olarak Lnfila Dim
I = 1
DgvSocios.Rows In Her dr için
kolon = 0
DgvSocios.Columns In Her dc için
DgvSocios.Columns.Item (sütun). Visible = True Sonra ise
objHojaExcel.Range (ColumnName (I) ve satır). Değer = dgvSocios.Item (sütun, lnfila). Value.ToString
I + = 1
End If
Sütun + = 1
Sonraki
lnfila + = 1
satır + 1 =
ProgressBar1.Value + = 1
Sonraki
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Otomatik olarak genişliğini ayarlamak
Kullanılan tüm sütunları itibaren '/ /
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & (lnfila + 1) ToString.)
objRango.Select ()
() objRango.Columns.AutoFit
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz Excel görüntülemek için söyle
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox (MsgBoxStyle.Information "Excel Komple verme", ". :: Solovb.net ::.")
m_Excel.Visible = True
Bu fonksiyon için biraz getiren aşağıdaki kod işlevi "ColumnName" gerektirmez için "Aralık" kullanımını önler
Saygılarımızla,
Imports System.Data
Imports System.Data.SqlClient
İthalat Microsoft.Office.Interop.Excel
Kamu Modülü Mutil
Public Sub ExportarDtToExcel (As String System.Data.DataTable, ByVal başlık ByVal Dt)
Excel.Application Dim m_Excel gibi
Excel.Workbook Dim objLibroExcel gibi
Worksheet Dim objHojaExcel gibi
Denemek
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Excel nesne oluşturma
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
m_Excel = CreateObject ("Excel.Application")
m_Excel.Workbooks.Add objLibroExcel = ()
objHojaExcel = objLibroExcel.Worksheets (1)
objHojaExcel.Name = Başlık
objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
() objHojaExcel.Activate
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Satır ve sütun kontrol etmek için iki değişken tanımlayın
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Integer = 1 Dim satır
Integer = 1 Dim sütun
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz sütun başlıkları satırı aşağıdaki şekilde
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'ObjHojaExcel.Range ("A1").) (Seçin
objHojaExcel.Cells (satır, sütun).) (SEÇ
Dt.Columns In Her dc için
objHojaExcel.Cells (satır, sütun). Değer = dc.ColumnName
Sütun + = 1
Sonraki
satır + 1 =
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz satır başlıkları biçimlendirmek
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Excel.Range = loş objRango objHojaExcel.Range (objHojaExcel.Cells (1, 1), objHojaExcel.Cells (1, Dt.Columns.Count)) gibi
objRango.Font.Bold = True
objRango.Cells.Interior.ColorIndex = 35
objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalUp). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). LineStyle = Excel.XlLineStyle.xlLineStyleNone
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeRight). LineStyle = Excel.XlLineStyle.xlContinuous
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeTop). LineStyle = Excel.XlLineStyle.xlContinuous
objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeBottom). LineStyle = Excel.XlLineStyle.xlContinuous
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Datatable tüm satırları yükleyin
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
kolon = 1
Dt.Rows In Her dr için
kolon = 1
Dt.Columns In Her dc için
objHojaExcel.Cells (satır, sütun). Değer = dr (dc.ColumnName)
Sütun + = 1
Sonraki
satır + 1 =
Sonraki
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Otomatik olarak genişliğini ayarlamak
Kullanılan tüm sütunları itibaren '/ /
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
objRango.Select ()
() objRango.Columns.AutoFit
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / Biz Excel görüntülemek için söyle
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox (MsgBoxStyle.Information "Excel Komple verme", "İhracat")
m_Excel.Visible = True
İstisna olarak Catch ex
MsgBox (ex.ToString)
Nihayet
objHojaExcel = Nothing
objLibroExcel = Nothing
m_Excel = Nothing
End Try
End Sub
End Module
Birisi yükselen progress1 açıklar mısınız?
Merhaba işlevi ColumnName göre benim katkım getirmek, iyi ben kalkınma alanında çok az deneyime sahip ve belki daha az sayıda kod hatları ile yapabilirim, bana geliştirmek için iş biraz mal ve yararlı umuyoruz. Orada bırakın
FtNombreColumna Fonksiyon As String (Integer, Integer, ByVal Opsiyonel sürümü ByVal totalColumnas As String = "12" ByVal sayısı)
As String Dim sütun ()
As Integer Dim i
Integer 'üçüncü harfi Dim j
Integer 'ikinci harf Dim k
Integer 'ilk harfini Dim l
Tamsayı Dim Jaux gibi
Tamsayı Dim kAux gibi
i = 1
Versiyonu> 11 Sonra ise
ReDim kolonu (totalColumnas)
j = 65
k = 65
l = 65
Jaux = 65
kAux = 0
I totalColumnas 1 = için
sütun: (i) = ChrW (j)
j = j + 1
J = 92 Then 'üçüncü, sonra yeniden doğmuş bitirmek ve ikinci harfi başlarsa
"Ikinci mektup Başlıyor
J = 65 için 90 için
Denemek
sütun: (i) = ChrW (k) ve ChrW (j)
Daha sonra ise J = 90
'Yeniden doğmuş üçüncü harfi ve ikinci harfi artırır
j = 64
k = k + 1
End If
i = i + 1
'Ilk harf Başlıyor
Sonra eğer k = 91
k = 65
Jaux için = 65 için 90
sütun: (i) = ChrW (l) ve ChrW (k) ve ChrW (Jaux)
Eğer Sonra Jaux = 90
'Üçüncü harfi değiştirme
Jaux = 64
k = k + 1
Sonra eğer k = 91
A ve B anahtarı ve ilk harfi değişir: 'ejmplo tarafından ikinci harfi değiştirme
k = 65 + kAux
l = l + 1
End If
End If
Sonra eğer l = 91
'Için Çık ilk harfi biter
End If
i = i + 1
Sonraki
End If
Sonra eğer k = 91
'Ikinci mektubu bitirir için çıkın
End If
İstisna olarak Catch ex
End Try
Sonraki
End If
Sonraki
Başka
ReDim kolonu (totalColumnas)
j = 65
k = 65
I totalColumnas 1 = için
sütun: (i) = ChrW (j)
j = j + 1
Sonra eğer j = 92
"Ikinci mektup Başlıyor
J = 65 için 90 için
Denemek
sütun: (i) = ChrW (k) ve ChrW (j)
Daha sonra ise J = 90
j = 64
k = k + 1
End If
i = i + 1
İstisna olarak Catch ex
End Try
"İlk harf alfabesi Ends
Sonra eğer k = 91
Için Çık
End If
Sonraki
End If
Sonraki
End If
İade sütun (sayı)
End Function
Üzgünüm yanlış kod, ben bir önceki sürümü koymak, bu son versiyonudur.
=)
As String FtNombreColumna Fonksiyonu (As Integer Integer, ByVal totalColumnas ByVal numarası)
As String Dim sütun ()
As Integer Dim i
Integer 'üçüncü harfi Dim j
Integer 'ikinci harf Dim k
Integer 'ilk harfini Dim l
Tamsayı Dim Jaux gibi
Tamsayı Dim kAux gibi
i = 1
Ardından 'Eğer sürüm> 11
ReDim kolonu (totalColumnas)
j = 65
k = 65
l = 65
Jaux = 65
kAux = 0
I totalColumnas 1 = için
sütun: (i) = ChrW (j)
j = j + 1
J = 92 Then 'üçüncü, sonra yeniden doğmuş bitirmek ve ikinci harfi başlarsa
"Ikinci mektup Başlıyor
J = 65 için 90 için
Denemek
sütun: (i) = ChrW (k) ve ChrW (j)
Daha sonra ise J = 90
'Yeniden doğmuş üçüncü harfi ve ikinci harfi artırır
j = 64
k = k + 1
End If
i = i + 1
'Ilk harf Başlıyor
Sonra eğer k = 91
k = 65
Jaux için = 65 için 90
sütun: (i) = ChrW (l) ve ChrW (k) ve ChrW (Jaux)
Eğer Sonra Jaux = 90
'Üçüncü harfi değiştirme
Jaux = 64
k = k + 1
Sonra eğer k = 91
A ve B anahtarı ve ilk harfi değişir: 'ejmplo tarafından ikinci harfi değiştirme
k = 65 + kAux
l = l + 1
End If
End If
Sonra eğer l = 91
'Için Çık ilk harfi biter
End If
i = i + 1
Sonraki
End If
Sonra eğer k = 91
'Ikinci mektubu bitirir için çıkın
End If
İstisna olarak Catch ex
End Try
Sonraki
End If
Sonraki
İade sütun (sayı)
End Function