วันนี้ผมต้องการที่จะแสดงตัวอย่างที่มีหน้าที่ฉันเป็นเวลานานและยังฉันยังคงใช้มัน
เราจะทำให้เป็นตัวอย่างในการส่งออก DataTable ไปยัง Excel เต็มโดยไม่คำนึงถึงจำนวนของคอลัมน์หรือแถวที่มี
อาจมีหลายวิธีที่จะทำเช่นนี้ แต่ฉันคิดว่ามันมีประโยชน์จริงๆตั้งแต่วิธีการนี้ใช้ได้กับรุ่นของ Excel ใด ๆ สำหรับปัญหาที่เกี่ยวกับ compatilidad รุ่นใหม่ของ Excel เท่านั้นจัดการ 256 คอลัมน์
สิ่งแรกที่เราต้องการก็คือการเพิ่มการอ้างอิงถึง Microsoft.Office.Interop.Excel และเราจะทำดังต่อไปนี้:

นำเข้าการอ้างอิงไปยัง Excel

การอ้างอิงและนำเข้าของ Excel
แล้วเราต้องใช้แบบฟอร์มปุ่ม, dataGridView และแถบความคืบหน้า เราสามารถมีเท่าที่เห็นในภาพ:

แบบฟอร์มใบสมัครเพื่อส่งออกเป็นชุดข้อมูลไปยัง Excel
สิ่งที่สำคัญที่สุดง่ายจริงๆคือตอนนี้ผมต้องการที่จะแสดงรหัสทั้งหมดคือมันจะปรับไปใช้ตารางใด ๆ คุณจะสามารถนำมาใช้ใหม่ได้โดยไม่มีปัญหา
Imports System.Data นำเข้าระดับสาธารณะ System.Data.SqlClient Form1 นำเข้า ds เอกชนในฐานะที่เป็นชุดข้อมูล Microsoft.Office.Interop เอกชนย่อยใหม่ Form1_Load (ByVal เป็นผู้ส่ง System.Object, ByVal e เป็น System.EventArgs) จัดการ MyBase.Load '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / สร้างการเชื่อมต่อและกรอก DataGridView '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim cnn As SqlConnection ใหม่ ("Data Source = localhost \ SQLEXPRESS; รายการสินค้าเริ่มต้นของ Northwind =; แบบบูรณาการการรักษาความปลอดภัย = True") da มซำเป็นนิ SqlDataAdapter ("* เลือกจากลูกค้า", CNN) ให้ เติม (DS) DataGridView1.DataSource ds.Tables = (0) End Sub Private Sub btnExportar_Click (ByVal ผู้ส่งเป็น System.Object, ByVal e เป็น System.EventArgs) จัดการ btnExportar.Click '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / สร้างวัตถุ Excel '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / มซำซำ m_Excel objLibroExcel มซำ objHojaExcel m_Excel = CreateObject ("Excel.Application") m_Excel.Workbooks.Add objLibroExcel = () = objLibroExcel.Worksheets objHojaExcel (1) objHojaExcel.Name = "ลูกค้า" objHojaExcel.Visible = Excel . XlSheetVisibility.xlSheetVisible objHojaExcel.Activate () '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / กำหนดตัวแปรทั้งสองในการควบคุมของแถวและคอลัมน์ '/ / / / / / / / / / / / / / / / / / / / / / แถว / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Dim As Integer = คอลัมน์ 1 Dim As Integer = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / เราตั้งสายที่มีหัวคอลัมน์ '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / objHojaExcel.Range ("A1"). เลือก () สำหรับ DC ในแต่ละ ds.Tables (0). คอลัมน์ objHojaExcel.Range (ColumnName (คอลัมน์) และ 1) คุ้มค่า. = dc.ColumnName คอลัมน์ + = 1 แถวถัดไป + = 1 '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / เราจัดรูปแบบแถวชื่อ '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / มซำเป็น Excel.Range = objHojaExcel.Range objRango ("A1". ColumnName (ds.Tables (0) Columns.Count) & "1") objRango.Font . Bold = True objRango.Cells.Interior.ColorIndex = 35 objRango.Cells.Borders (Excel.XlBordersIndex.xlDiagonalDown). LineStyle = objRango.Cells.Borders Excel.XlLineStyle.xlLineStyleNone (Excel.XlBordersIndex.xlDiagonalUp). LineStyle = Excel XlLineStyle.xlLineStyleNone objRango.Cells.Borders (Excel.XlBordersIndex.xlEdgeLeft). LineStyle = objRango.Cells.Borders Excel.XlLineStyle.xlLineStyleNone (Excel.XlBordersIndex.xlEdgeRight). LineStyle = objRango.Cells.Borders Excel.XlLineStyle.xlContinuous (Excel . XlBordersIndex.xlEdgeTop). LineStyle = objRango.Cells.Borders Excel.XlLineStyle.xlContinuous (Excel.XlBordersIndex.xlEdgeBottom). LineStyle Excel.XlLineStyle.xlContinuous = '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / โหลดแถวทั้งหมดใน DataTable '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / = ProgressBar1.Maximum ds.Tables (0). คอลัมน์ Rows.Count ProgressBar1.Value = 1 = 0 สำหรับแต่ละ Dr ใน ds.Tables (0). คอลัมน์แถวคุ้มค่าคอลัมน์ = 1 สำหรับ DC ในแต่ละ ds.Tables (0). objHojaExcel.Range (ColumnName (คอลัมน์) และแถว). = คอลัมน์ DR (dc.ColumnName) + = 1 แถวถัดไป + = 1 + 1 = ถัดไป ProgressBar1.Value '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / '/ / เราปรับความกว้างโดยอัตโนมัติ' / / สำหรับคอลัมน์ทั้งหมดที่ใช้ '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / = objRango objHojaExcel.Range ("A1".. ColumnName (ds.Tables (0) Columns.Count) ds.Tables & (0) Rows.Count.ToString) objRango.Select () objRango Columns.AutoFit. () '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / เราบอก Excel ที่จะแสดง '/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / MsgBox ("ส่งออกไปยัง Excel Complete" , MsgBoxStyle.Information, ". :: solovb.net ::.") m_Excel.Visible = True End Sub Function ColumnName สาธารณะ (จำนวน ByVal As Integer) As String Dim คอลัมน์ (256) ขณะที่คอลัมน์ String (1) = "" คอลัมน์ (2) = "B" เสาหลัก (3) = "C" คอลัมน์ (4) = "D" เสาหลัก (5) = "E" คอลัมน์ (6) = "F" คอลัมน์ (7) = คอลัมน์ "G" ( 8) = คอลัมน์ "H" (9) = "ฉัน" คอลัมน์ (10) = คอลัมน์ "J" (11) = คอลัมน์ "K" (12) = คอลัมน์ "L" (13) = คอลัมน์ "M" (14) = คอลัมน์ "N" (15) = คอลัมน์ "W" (16) = คอลัมน์ "P" (17) = คอลัมน์ "Q" (18) = "R" คอลัมน์ (19) = คอลัมน์ "S" (20) = " T "คอลัมน์ (21) =" "คอลัมน์ (22) =" U "คอลัมน์ (23) =" V "คอลัมน์ (24) =" W X คอลัมน์ "(25) =" "คอลัมน์ (26) =" Y Z " คอลัมน์ (27) = คอลัมน์ "AA" (28) = คอลัมน์ "AB" (29) = คอลัมน์ "AC" (30) = "AD" คอลัมน์ (31) = คอลัมน์ "AE" (32) = คอลัมน์ "AF" ( 33) = คอลัมน์ "AG" (34) = "AH" คอลัมน์ (35) = "จำนวนคอลัมน์" (36) = คอลัมน์ "AJ" (37) = คอลัมน์ "อลาสกา" (38) = "TO" คอลัมน์ (39) = คอลัมน์ "AM" (40) = คอลัมน์ "NA" (41) = คอลัมน์ "AO" (42) = คอลัมน์ "AP" (43) = คอลัมน์ "AQ" (44) = คอลัมน์ "RA" (45) = " AS "คอลัมน์ (46) =" "คอลัมน์ (47) =" AT "คอลัมน์ (48) =" AU "คอลัมน์ (49) =" AV AW คอลัมน์ "(50) =" "คอลัมน์ (51) =" AX AY " คอลัมน์ (52) = คอลัมน์ "อาริโซน่า" (53) = คอลัมน์ "BA" (54) = คอลัมน์ "บีบี" (55) = คอลัมน์ "BC" (56) = คอลัมน์ "BD" (57) = "พ.ศ. " คอลัมน์ ( 58) = คอลัมน์ "BF" (59) = คอลัมน์ "BG" (60) = คอลัมน์ "BH" (61) = คอลัมน์ "BI" (62) = คอลัมน์ "BJ" (63) = คอลัมน์ "BK" (64) = คอลัมน์ "BL" (65) = คอลัมน์ "BM" (66) = "BN" คอลัมน์ (67) = คอลัมน์ "Bo" (68) = คอลัมน์ "BP" (69) = คอลัมน์ "BQ" (70) = " BR คอลัมน์ "(71) =" "คอลัมน์ (72) =" BS "คอลัมน์ (73) =" BT "คอลัมน์ (74) =" BU "คอลัมน์ (75) =" BV คอลัมน์ "(76) =" BW BX " คอลัมน์ (77) = คอลัมน์ "โดย" (78) = คอลัมน์ "BZ" (79) = คอลัมน์ "CA" (80) = คอลัมน์ "CB" (81) = คอลัมน์ "ซีซี" (82) = คอลัมน์ "ซีดี" ( 83) = คอลัมน์ "CE" (84) = คอลัมน์ "CF" (85) = คอลัมน์ "CG" (86) = คอลัมน์ "CH" (87) = คอลัมน์ "CI" (88) = คอลัมน์ "CJ" (89) = คอลัมน์ "CK" (90) = คอลัมน์ "CL" (91) = "CM" คอลัมน์ (92) = "CN" คอลัมน์ (93) = คอลัมน์ "โคโลราโด" (94) = คอลัมน์ "CP" (95) = " CQ คอลัมน์ "(96) =" "คอลัมน์ (97) =" CR "คอลัมน์ (98) =" CS "คอลัมน์ (99) =" CT "คอลัมน์ (100) =" CU คอลัมน์ "(101) =" CV CW " คอลัมน์ (102) = คอลัมน์ "CX" (103) = คอลัมน์ "CY" (104) = คอลัมน์ "CZ" (105) = คอลัมน์ "DA" (106) = คอลัมน์ "DB" (107) = คอลัมน์ "ซี" ( 108) = คอลัมน์ "DD" (109) = "DE" คอลัมน์ (110) = คอลัมน์ "DF" (111) = คอลัมน์ "DG" (112) = คอลัมน์ "DH" (113) = คอลัมน์ "ID" (114) = คอลัมน์ "ดีเจ" (115) = คอลัมน์ "DK" (116) = คอลัมน์ "DL" (117) = คอลัมน์ "DM" (118) = คอลัมน์ "DN" (119) = คอลัมน์ "ทำ" (120) = " DP คอลัมน์ "(121) =" "คอลัมน์ (122) =" DQ "คอลัมน์ (123) =" DR "คอลัมน์ (124) =" DS "คอลัมน์ (125) =" DT "คอลัมน์ (126) =" DU DV " คอลัมน์ (127) = คอลัมน์ "DW" (128) = คอลัมน์ "DX" (129) = คอลัมน์ "DY" (130) = คอลัมน์ "DZ" (131) = คอลัมน์ "EA" (132) = คอลัมน์ "EB" ( 133) = คอลัมน์ "EC" (134) = คอลัมน์ "ED" (135) = คอลัมน์ "EE" (136) = คอลัมน์ "EF" (137) = "EG" คอลัมน์ (138) = "EH" คอลัมน์ (139) = คอลัมน์ "EI" (140) = คอลัมน์ "EJ" (141) = คอลัมน์ "EK" (142) = คอลัมน์ "EL" (143) = คอลัมน์ "MS" (144) = คอลัมน์ "IN" (145) = " EO คอลัมน์ "(146) =" "คอลัมน์ (147) =" EP "คอลัมน์ (148) =" EQ "คอลัมน์ (149) =" ER "คอลัมน์ (150) =" ES ET คอลัมน์ "(151) =" อียู " คอลัมน์ (152) = คอลัมน์ "EV" (153) = คอลัมน์ "EW" (154) = คอลัมน์ "EX" (155) = คอลัมน์ "EY" (156) = คอลัมน์ "EZ" (157) = คอลัมน์ "เอฟเอ" ( 158) = คอลัมน์ "FB" (159) = คอลัมน์ "FC" (160) = คอลัมน์ "FD" (161) = คอลัมน์ "เฟ" (162) = คอลัมน์ "FF" (163) = คอลัมน์ "FG" (164) = คอลัมน์ "FH" (165) = คอลัมน์ "ไฟ" (166) = "FJ คอลัมน์" (167) = คอลัมน์ "FK" (168) = คอลัมน์ "ฟลอริด้า" (169) = คอลัมน์ "เอฟเอ็ม" (170) = " FN "คอลัมน์ (171) =" "คอลัมน์ (172) =" FO "คอลัมน์ (173) =" FP "คอลัมน์ (174) =" CF "คอลัมน์ (175) =" FR "คอลัมน์ (176) =" FS FT " คอลัมน์ (177) = คอลัมน์ "FU" (178) = คอลัมน์ "FV" (179) = คอลัมน์ "FW" (180) = คอลัมน์ "FX" (181) = คอลัมน์ "ปีงบประมาณ" (182) = คอลัมน์ "FZ" ( 183) = คอลัมน์ "GA" (184) = คอลัมน์ "GB" (185) = คอลัมน์ "GC" (186) = คอลัมน์ "GD" (187) = คอลัมน์ "GE" (188) = คอลัมน์ "GF" (189) = คอลัมน์ "GG" (190) = คอลัมน์ "GH" (191) = คอลัมน์ "GI" (192) = คอลัมน์ "GJ" (193) = คอลัมน์ "GK" (194) = คอลัมน์ "GL" (195) = " จีเอ็ม "คอลัมน์ (196) =" "คอลัมน์ (197) =" GN "คอลัมน์ (198) =" GO "คอลัมน์ (199) =" GP "คอลัมน์ (200) =" GQ "คอลัมน์ (201) =" GR GS " คอลัมน์ (202) = คอลัมน์ "GT" (203) = คอลัมน์ "GU" (204) = คอลัมน์ "GV" (205) = คอลัมน์ "GW" (206) = คอลัมน์ "GX" (207) = คอลัมน์ "GY" ( 208) = "GZ" คอลัมน์ (209) = คอลัมน์ "HA" (210) = คอลัมน์ "HB" (211) = คอลัมน์ "HC" (212) = คอลัมน์ "HD" (213) = "ฯพณฯ " คอลัมน์ (214) = คอลัมน์ "HF" (215) = คอลัมน์ "HG" (216) = คอลัมน์ "HH" (217) = คอลัมน์ "HI" (218) = คอลัมน์ "ฮยอนจุง" (219) = คอลัมน์ "HK" (220) = " HL คอลัมน์ "(221) =" "คอลัมน์ (222) =" HM "คอลัมน์ (223) =" HN "คอลัมน์ (224) =" HO "คอลัมน์ (225) =" เอชพี "คอลัมน์ (226) =" HQ HR " คอลัมน์ (227) = คอลัมน์ "HS" (228) = คอลัมน์ "HT" (229) = คอลัมน์ "HU" (230) = คอลัมน์ "HV" (231) = คอลัมน์ "HW" (232) = คอลัมน์ "H" ( 233) = คอลัมน์ "HY" (234) = คอลัมน์ "HZ" (235) = คอลัมน์ "IA" (236) = คอลัมน์ "IB" (237) = คอลัมน์ "IC" (238) = คอลัมน์ "ID" (239) = คอลัมน์ "IE" (240) = "IF" คอลัมน์ (241) = คอลัมน์ "IG" (242) = คอลัมน์ "IH" (243) = คอลัมน์ "II" (244) = คอลัมน์ "IJ" (245) = " IK คอลัมน์ "(246) =" "คอลัมน์ (247) =" อิลลินอยส์คอลัมน์ "(248) =" IM "คอลัมน์ (249) =" ในคอลัมน์ "(250) =" IO "คอลัมน์ (251) =" IP IQ " คอลัมน์ (252) = "R" คอลัมน์ (253) = "ที่เป็น" คอลัมน์ (254) = "ไอที" คอลัมน์ (255) End Function = คอลัมน์ "UI" (256) = คอลัมน์ "IV" ย้อนกลับ (จำนวน) ระดับ End วิธีการนี้จะมีหน้าที่ฉันดีและฉันหวังว่าคุณจะทำมากเกินไป ... โปรดออกความคิดเห็นของคุณ
Bitacoras.com ข้อมูล ...
อัตราใน Bitacoras.com: Hi, วันนี้ฉันต้องการที่จะแสดงตัวอย่างที่มีหน้าที่ฉันเป็นเวลานานและยังฉันยังคงใช้มัน เราจะทำให้เป็นตัวอย่างในการส่งออก DataTable ไปยัง Excel เต็มโดยไม่คำนึงถึงจำนวนของคอลัมน์หรือแถวที่เต็ง .....
ดี ...
โพสต์ดีเลิศ! ขอบคุณที่ช่วยให้ฉันเต็ม แต่ผมมีข้อสงสัย .. ในฐานะที่เป็นลิงค์อยู่กับ SQL .. ฉันจะเปลี่ยนชื่อคอลัมน์วิธี! เพราะมันจะทำให้ชื่อของเขตข้อมูลของ SQL .. !
และฉันหวังว่าฉันได้เข้าใจ ..
ขอขอบคุณ!
ฉันจะบันทึก ...
ในบางจุดก็จะเป็นประโยชน์ ...
มันถูกต้องสำหรับ Excel 2007? ฉันมีปัญหากับการส่งออกในการพัฒนาว่ามันถูกต้องสำหรับรุ่นก่อนหน้านี้ แต่ไม่สำหรับ 2007 ขอบคุณ
รหัสที่มาอันยิ่งใหญ่ หน้าที่ฉันดี q มันเป็นหนี้ที่ค้างชำระนาน
แม้ว่ายังต้องนำเข้าจาก ecxel ตารางข้อมูล แต่อาจจะเป็นสิ่งแวดล้อมเพื่อ DataGrid และจากนั้นการปรับปรุง DataAdapter และยอมรับการเปลี่ยนแปลงใน DataTable จะถูกบันทึกไว้ใน q BD ... ฉันหวังว่าฉันสามารถช่วยหรือหา .. ขอบคุณ
สวัสดีขอบคุณมาก! ที่ยอดเยี่ยมนี้!
แต่ผมแปลกใจที่ใน datagrid ระบุว่าใช้ในกรณีที่มีหลาย Datagrid?
เกี่ยวกับตารางที่คุณกำลังเรียกร้อง ...
* เลือกจาก (ชื่อตาราง)
ถ้าคุณต้องการระบุเขตข้อมูลที่คุณต้องการ
เลือก (เขต, เขต, เขต) * จากตาราง
ejm
เลือกรถสีปีจากรถ
ฉันมีปัญหากับตัวอย่างนี้ผมทำ 2 ข้อผิดพลาดในตัวแปร DC และดรผมสามารถทำได้เพื่อแก้ไขมันได้หรือไม่
สวัสดีครับลองนี้:
สำหรับแต่ละ Dr ในฐานะที่เป็น DataRow ใน ds.Tables (0). แถวและ DataColumn สำหรับ DC ในแต่ละ ds.Tables เป็น (0) คอลัมน์.
ฉันหวังว่านี้ได้รับการแก้ไข อาศิรพจน์
Hola
Chevere นี้ แต่ส่วนหนึ่งของชื่อคอลัมน์ไม่ได้เป็นทำงานมาก
ฉันจะอัปโหลดไปยังบล็อกของฉันมีข้อ จำกัด มากน้อยขนาดรหัสและไม่มี
jaysson.blogspot.com
พร้อมและก็ขึ้นไปที่บทความ
http://jaysson.blogspot.com/2010/06/columnas-es-excel.html
บทความดี แต่ฉันมีปัญหาที่เกิดขึ้นบนคอมพิวเตอร์ของฉันกับ Excel 2007 ผลงานได้อย่างราบรื่น แต่ด้วยเครื่องคอมพิวเตอร์ที่มี Excel 2003 หรือก่อนหน้านี้ไม่ทำงาน อยากทราบว่าปัญหาของห้องสมุดที่มีการนำเข้าเนื่องจากคุณหมายความว่าการทำงานสำหรับ excel ใด ๆ แต่ฉันได้พบปัญหานี้
ลองดูถ้ามีคนจะสามารถแก้ข้อสงสัย
ขอบคุณ
ดี ...
โพสต์ดีเลิศ! ขอบคุณที่ช่วยให้ฉันเต็ม แต่ผมมีข้อสงสัย .. ในฐานะที่เป็นลิงค์อยู่กับ SQL .. ฉันจะเปลี่ยนชื่อคอลัมน์วิธี! เพราะมันจะทำให้ชื่อของเขตข้อมูลของ SQL .. !
และฉันหวังว่าฉันได้เข้าใจ ..
ขอขอบคุณ!
Public Sub ExportarDatosExcel (ByVal DataGridView1 เป็น DataGridView ชื่อ ByVal, As String)
ในฐานะที่เป็น Excel.Application มซำใหม่ m_Excel
m_Excel.Cursor = Excel.XlMousePointer.xlWait
m_Excel.Visible = True
ในฐานะที่เป็น Excel.Workbook มซำ objLibroExcel = m_Excel.Workbooks.Add
ในฐานะที่เป็น Excel.Worksheet มซำ objHojaExcel = objLibroExcel.Worksheets (1)
ด้วย objHojaExcel
. เห็น = Excel.XlSheetVisibility.xlSheetVisible
เปิดใช้งาน. ()
ส่วนหัว '
Range ("A1: L1").. ผสาน ()
Range ("A1: L1"). Value = "สถาบัน ARGENCAF".
Range ("A1: L1").. Font.Bold = True
Range ("A1: L1").. Font.Size = 15
'ปอย
Range ("A2: L2").. ผสาน ()
Range ("A2: L2").. คุ้มค่า title =
Range ("A2: L2").. Font.Bold = True
Range ("A2: L2").. Font.Size = 12
Const primeraLetra เป็น Char = ""
firstNumber Const สั้น = 3
จดหมายมซำเป็น Char, Char เป็น UltimaLetra
จำนวนมซำเป็นจำนวนเต็ม UltimoNumero As Integer
มซำเป็น Byte = Asc cod_letra (primeraLetra) - 1
มซำ As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator sepDec
มซำ As String = Application.CurrentCulture.NumberFormat.NumberGroupSeparator sepMil
รูปแบบชุดของคอลัมน์ของลูกสาวของการคำนวณ
StrColumna มซำ As String = ""
LetraIzq มซำ As String = ""
มซำเป็น Byte = Asc cod_LetraIzq (primeraLetra) - 1
จดหมาย primeraLetra =
จำนวน firstNumber =
ในฐานะที่เป็น Excel.Range มซำ objCelda
สำหรับ C แต่ละ DataGridViewColumn ใน DataGridView1.Columns
แล้วถ้า c.Visible
ถ้าจดหมาย = "Z" จากนั้น
จดหมาย primeraLetra =
cod_letra = Asc (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
อื่น
cod_letra + = 1
จดหมาย = Chr (cod_letra)
End If
strColumna = LetraIzq + + เพลง Numero.ToString
ช่วง objCelda =. (strColumna, Type.Missing)
objCelda.Value = c.HeaderText
objCelda.EntireColumn.Font.Size = 8
'ObjCelda.EntireColumn.NumberFormat = c.DefaultCellStyle.Format
หาก c.ValueType เป็น GetType (ทศนิยม) OrElse c.ValueType เป็น GetType (เตียงคู่) จากนั้น
objCelda.EntireColumn.NumberFormat = "#" + + sepMil "0" + + sepDec "00"
End If
End If
ต่อไป
ในฐานะที่เป็น Excel.Range มซำ objRangoEncab = กลาง. (primeraLetra + Numero.ToString, LetraIzq เพลง + Numero.ToString +)
objRangoEncab.BorderAround (1, Excel.XlBorderWeight.xlMedium)
ส่ง UltimaLetra =
มซำ As String = LetraIzq UltimaLetraIzq
'โหลดข้อมูล
Dim i As Integer = จำนวน + 1
สำหรับแต่ละรายการในขณะที่ DataGridViewRow DataGridView1.Rows
LetraIzq = ""
cod_LetraIzq = Asc (primeraLetra) - 1
จดหมาย primeraLetra =
cod_letra = Asc (primeraLetra) - 1
สำหรับ C แต่ละ DataGridViewColumn ใน DataGridView1.Columns
แล้วถ้า c.Visible
ถ้าจดหมาย = "Z" จากนั้น
จดหมาย primeraLetra =
cod_letra = Asc (primeraLetra)
cod_LetraIzq + = 1
LetraIzq = Chr (cod_LetraIzq)
อื่น
cod_letra + = 1
จดหมาย = Chr (cod_letra)
End If
strColumna = LetraIzq เพลง +
"ที่นี่ควรจะเป็นภาระ
เซลล์. (i, strColumna) = IIf (IsDBNull (reg.ToString), "", reg.Cells (c.Index) มูลค่า.)
'. Cells (i, strColumna) = IIf (IsDBNull (reg. (c.DataPropertyName)), c.DefaultCellStyle.NullValue, reg (c.DataPropertyName))
'ช่วง. (strColumna + i, strColumna + i). ใน ()
End If
ต่อไป
ในฐานะที่เป็น Excel.Range มซำ objRangoReg = กลาง. (primeraLetra + i.ToString, i.ToString strColumna +)
objRangoReg.Rows.BorderAround ()
objRangoReg.Select ()
ฉัน + = 1
ต่อไป
ฉัน UltimoNumero =
"เส้นวาดของคอลัมน์
LetraIzq = ""
cod_LetraIzq = Asc ("")
cod_letra = Asc (primeraLetra)
จดหมาย primeraLetra =
สำหรับ C แต่ละ DataGridViewColumn ใน DataGridView1.Columns
แล้วถ้า c.Visible
ช่วง objCelda =. (LetraIzq + + เพลง primerNumero.ToString, LetraIzq เนื้อเพลง + + (UltimoNumero - ToString 1).)
objCelda.BorderAround ()
ถ้าจดหมาย = "Z" จากนั้น
จดหมาย primeraLetra =
cod_letra = Asc (primeraLetra)
LetraIzq = Chr (cod_LetraIzq)
cod_LetraIzq + = 1
อื่น
cod_letra + = 1
จดหมาย = Chr (cod_letra)
End If
End If
ต่อไป
'วาดเส้นขอบด้านนอกหนา
ในฐานะที่เป็น Excel.Range มซำ objRango = กลาง. (primeraLetra + primerNumero.ToString, UltimaLetra UltimaLetraIzq + + (UltimoNumero - ToString 1).)
objRango.Select ()
objRango.Columns.AutoFit ()
objRango.Columns.BorderAround (1, Excel.XlBorderWeight.xlMedium)
End With
m_Excel.Cursor = Excel.XlMousePointer.xlDefault
ย่อยสิ้นสุด
ToolStripButton2_Click_1 ตำบลเอกชน (ผู้ส่ง ByVal เป็น System.Object, ByVal e เป็น System.EventArgs) จัดการ ToolStripButton2.Click
ExportarDatosExcel (DataGridView1, "ส่งออก")
ย่อยสิ้นสุด
EXCELLENT! .... พี่ชายขอบคุณและเอา 3 วันกับโมดูลสำหรับการนำเข้า / ส่งออก Excel และไม่มีอะไรที่ทำงาน .... แต่มีวิธีการแก้ปัญหาของคุณผมเห็นอีกครั้ง ... ทักทายดาวจาก Arequipa: ..
ไม่เป็นไร ผมดีใจที่คุณทำหน้าที่เป็นตัวอย่าง
รหัสนี้ช่วยให้ฉันมากดังนั้นฉันทำงานร่วมกับสองเซ็นต์ของฉัน:
มี "ColumnName" ที่จะมาถึงคอลัมน์ ahsta ZZ ที่สุด (702 et al.)
ที่นี่ผมให้คุณรหัส:
ColumnName ฟังก์ชันสาธารณะ (จำนวน ByVal As Integer) As String
คอลัมน์มซำ (703) As String
คอลัมน์ (1) = ""
คอลัมน์ (2) = "B"
คอลัมน์ (3) = "C"
คอลัมน์ (4) = "D"
คอลัมน์ (5) = "E"
คอลัมน์ (6) = "F"
คอลัมน์ (7) = "G"
คอลัมน์ (8) = "H"
คอลัมน์ (9) = "I"
คอลัมน์ (10) = "J"
คอลัมน์ (11) = "K"
คอลัมน์ (12) = "L"
คอลัมน์ (13) = "M"
คอลัมน์ (14) = "N"
คอลัมน์ (15) = "O"
คอลัมน์ (16) = "P"
คอลัมน์ (17) = "Q"
คอลัมน์ (18) = "อาร์"
คอลัมน์ (19) = "S"
คอลัมน์ (20) = "T"
คอลัมน์ (21) = "U"
คอลัมน์ (22) = "V"
คอลัมน์ (23) = "W"
คอลัมน์ (24) = "X"
คอลัมน์ (25) = "Y"
คอลัมน์ (26) = "Z"
Dim i = 27
สำหรับ Ltr1 = 1 ถึง 26
สำหรับ Ltr2 = 1 ถึง 26
คอลัมน์ (i) คอลัมน์ = (Ltr1) & คอลัมน์ (Ltr2)
ฉัน + = 1
ต่อไป
ต่อไป
คอลัมน์ย้อนกลับ (จำนวน)
ฟังก์ชั่นเอนด์
TECKNOCK, ขอบคุณมากสำหรับความช่วยเหลือ! แต่จำไว้ว่าถ้าหนังสือที่เราสร้างเข้ากันได้กับ Excel 97-2003 คอลัมน์สูงสุดที่อนุญาตคือ 256 (ที่ IV) เช่นเดียวกับความเห็นที่จะใช้เวลานี้ในบัญชี
เอลีชา
เมื่อฉันทำงานของโปรแกรมประยุกต์ funcioana ท้องถิ่นได้อย่างถูกต้อง แต่เมื่อฉันอัปโหลดไว้ในเว็บไซต์ไม่ได้สร้าง Excel แต่ไม่ได้รับข้อผิดพลาด
ฉันกำลังมองหา haciend สายดินเพื่อฉัน SQL
ไม่ชอบที่ฉันทำ แต่ฉันจะทำ AJA
ฉันต้องการความช่วยเหลือพยายามที่จะทำมันในแบบที่คุณอยู่ที่นี่ทุกวันและฉันได้รับข้อผิดพลาดทั้งหมด
มือคุณสูงสุด funca ที่สมบูรณ์แบบ
[... ] [... ]
ที่ดีมากขอแสดงความยินดีที่ในการโพสต์ที่ดีที่สุดที่ฉันได้อ่านและได้รับการพิจารณา
ขอขอบคุณ! มันเป็นประโยชน์มาก
เฮ้รหัสไม่ได้อยู่ที่ผมจะทำเครื่องหมายข้อผิดพลาด da.Fill (ds)
ฉันทำเครื่องหมายข้อผิดพลาดไม่พบ SqlException
คุณสามารถช่วยฉัน
คำถามหนึ่งที่สามารถทำให้การโหลดแบบสอบถามโดยตรง SQL ไปยัง Excel?
ก่อนผ่าน
สวัสดีเพื่อนคนแรกของทั้งหมดที่คุณ agradesco ผลงานของคุณ
โปรดทราบว่าฉันมีปัญหาฉันไม่สามารถหาข้อมูลอ้างอิงที่คุณระบุผมได้ติดตั้ง Office 2010 และที่ไม่สามารถเป็นปัญหาของฉัน
agradeseria แนะนำให้คุณบาง
สวัสดีผลงานที่ดีมากคือสิ่งที่ผมต้องการ ... แต่เมื่อฉันเรียกใช้จากเซิร์ฟเวอร์การพัฒนาทำงานที่สมบูรณ์แบบ แต่เมื่อฉันเข้าเว็บจากเครื่องอื่นไม่ทำอะไรเลย ... ไม่มีข้อผิดพลาด แต่ไม่ได้ทำอะไรเลยบันทึก ...
ใครรู้วิธีการแก้ไขหรือไม่
ขอบคุณมากช่วยให้ฉันตัวอย่างของคุณเป็นพื้นฐานสำหรับการสร้างฟังก์ชั่นที่สร้างมา แต่ไฟล์ Excel โดยตรงจากค่าที่เก็บไว้ในตารางคือสิ่งที่กรณี dejor จะเป็นประโยชน์สำหรับใครบางคน
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราตั้งสายที่มีหัวคอลัมน์
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Range ("A1"). เลือก ()
มซำฉัน As Integer = 0
Lncol มซำเป็น Integer = 1
สำหรับ DC ในแต่ละ dgvSocios.Columns
หาก dgvSocios.Columns.Item (I). เห็น = True แล้ว
คุ้มค่า objHojaExcel.Range (ColumnName (lncol) & 1). = dgvSocios.Columns.Item (I). HeaderText
lncol + = 1
End If
ฉัน + = 1
ต่อไป
แถว + = 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราจัดรูปแบบชื่อแถว
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ในฐานะที่เป็น Excel.Range มซำ objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & "1")
ทรู objRango.Font.Bold =
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
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ProgressBar1.Maximum = dgvSocios.Rows.Count
คอลัมน์ = 0
ProgressBar1.Value = 0
ProgressBar1.Visible = True
Lnfila มซำเป็น Integer = 0
i = 1
สำหรับแต่ละ Dr ใน dgvSocios.Rows
คอลัมน์ = 0
สำหรับ DC ในแต่ละ dgvSocios.Columns
หาก dgvSocios.Columns.Item (คอลัมน์). เห็น = True แล้ว
objHojaExcel.Range (ColumnName (I) และแถว) คุ้มค่า. = Value.ToString dgvSocios.Item (คอลัมน์ lnfila).
ฉัน + = 1
End If
คอลัมน์ + = 1
ต่อไป
lnfila + = 1
แถว + = 1
ProgressBar1.Value + = 1
ต่อไป
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราปรับความกว้างโดยอัตโนมัติ
'/ / จากคอลัมน์ทั้งหมดที่ใช้
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objRango = objHojaExcel.Range ("A1:" & ColumnName (lncol) & (lnfila + 1) ToString.)
objRango.Select ()
objRango.Columns.AutoFit ()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราบอก Excel ที่จะแสดง
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox ("ส่งออกไปยัง Excel Complete", MsgBoxStyle.Information, ". :: Solovb.net ::.")
m_Excel.Visible = True
นำบิตสำหรับฟังก์ชั่นนี้, รหัสต่อไปนี้จะช่วยป้องกันการใช้งานของ "ช่วง" การที่ไม่ต้องฟังก์ชั่น "ColumnName"
ขอแสดงความนับถือ
System.Data Imports
System.Data.SqlClient นำเข้า
Microsoft.Office.Interop.Excel นำเข้า
mutil โมดูลสาธารณะ
Public Sub ExportarDtToExcel (ByVal Dt เป็น System.Data.DataTable, ชื่อ ByVal As String)
ในฐานะที่เป็น Excel.Application มซำ m_Excel
ในฐานะที่เป็น Excel.Workbook มซำ objLibroExcel
ในฐานะที่เป็นแผ่นมซำ objHojaExcel
ลอง
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / สร้างวัตถุ Excel
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / /
m_Excel = CreateObject ("Excel.Application")
m_Excel.Workbooks.Add objLibroExcel = ()
objHojaExcel = objLibroExcel.Worksheets (1)
หัวข้อ objHojaExcel.Name =
objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible
objHojaExcel.Activate ()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / กำหนดตัวแปรทั้งสองในการควบคุมของแถวและคอลัมน์
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
แถวมซำเป็น Integer = 1
คอลัมน์ Dim As Integer = 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราตั้งสายที่มีหัวคอลัมน์
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'ObjHojaExcel.Range ("A1"). เลือก ()
objHojaExcel.Cells (แถวคอลัมน์). เลือก ()
สำหรับ DC ในแต่ละ Dt.Columns
objHojaExcel.Cells (แถวคอลัมน์) มูลค่า. = dc.ColumnName
คอลัมน์ + = 1
ต่อไป
แถว + = 1
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราจัดรูปแบบชื่อแถว
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
ในฐานะที่เป็น Excel.Range = สลัว objRango objHojaExcel.Range (objHojaExcel.Cells (1, 1), objHojaExcel.Cells (1, Dt.Columns.Count))
ทรู objRango.Font.Bold =
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
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
คอลัมน์ = 1
สำหรับแต่ละ Dr ใน Dt.Rows
คอลัมน์ = 1
สำหรับ DC ในแต่ละ Dt.Columns
objHojaExcel.Cells (แถวคอลัมน์) มูลค่า. = Dr (dc.ColumnName)
คอลัมน์ + = 1
ต่อไป
แถว + = 1
ต่อไป
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราปรับความกว้างโดยอัตโนมัติ
'/ / จากคอลัมน์ทั้งหมดที่ใช้
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
objHojaExcel.Cells objRango = (1, Dt.Columns.Count)
objRango.Select ()
objRango.Columns.AutoFit ()
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
'/ / เราบอก Excel ที่จะแสดง
'/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
MsgBox ("ส่งออกไปยัง Excel Complete" MsgBoxStyle.Information, "ส่งออก")
m_Excel.Visible = True
จับอดีตเป็นข้อยกเว้น
MsgBox (ex.ToString)
ในที่สุด
ไม่มีอะไร objHojaExcel =
ไม่มีอะไร objLibroExcel =
ไม่มีอะไร m_Excel =
สิ้นสุดลอง
ย่อยสิ้นสุด
โมดูล End