<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ADO.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/78/ShowForum.aspx</link><description>Θέματα σχετικά με την προσπέλαση δεδομένων μέσω του ADO.NET και του System.Data namespace</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Διαβασμα συγκερκριμενων κελιων απο αρχειο Excel</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43508.aspx</link><pubDate>Thu, 17 Jul 2008 07:18:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43508</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43508.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=43508</wfw:commentRss><description>&lt;P&gt;Ο παραπάνω τρόπος απαιτεί να υπάρχει το Excel στον υπολογιστή σου. Επίσης, η Dim EXL As New Excel.Application() ανοίγει το Excel αν και δεν φαίνεται. Στο τέλος θα πρέπει όχι μόνο να κάνεις EXL.Quit() αλλά και EXL.Dispose(), διαφορετικά δεν θα ελευθερωθεί το reference μέχρι να τρέξει o garbage collector. Το ίδιο ισχύει και για τις sh1 = Nothing,&amp;nbsp;wb0 = Nothing. Είναι πολύ εύκολο να ξεχάσεις κάποιο reference με αποτέλεσμα να παραμεινει ανοικτό το Excel ακόμα και αν ολοκληρωθεί η εκτέλεση του κώδικα σου.&lt;/P&gt;
&lt;P&gt;Οι παραπάνω περιορισμοί κάνουν απαγορευτική τη χρήση του Excel API σε servers, είτε πρόκειται για web applications είτε για web services. Εναλλακτικά μπορείς να χρησιμοποιήσεις τον Jet OLE DB Provider για να διαβάσεις και να γράψεις τα περιεχόμενα ενός Excel sheet σα να είναι πίνακας σε βάση. Αυτό δεν απαιτεί την ύπαρξει του Excel στο μηχάνημα και φυσικά δεν δημιουργεί instances του Excel. Δες το &lt;A href="http://davidhayden.com/blog/dave/archive/2006/05/26/2973.aspx"&gt;Reading and Writing Excel Spreadsheets Using ADO.NET C# DbProviderFactory&lt;/A&gt;&amp;nbsp;του David Hayden. &lt;BR&gt;Συνοπτικά, χρησιμοποιείς ένα connection string του τύπου string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=""Excel 8.0;HDR=YES;"""; για να ανοίξεις το Excel σαν πίνακα και statements όπως "SELECT ID,City,State FROM [Sheet1$]"; για να διαβάσεις τα περιεχόμενα του κάθε Sheet στο WorkBook. &lt;/P&gt;
&lt;P&gt;Άκόμα και αυτή η λύση έχει κάποια προβλήματα. Τα κελιά του Excel δεν έχουν συγκεκριμένο τύπο ενώ το ADO.NET περιμένει κάθε στήλη να έχει τύπο. Ο OLE DB Provider προσπαθεί να μαντέψει τί τύπου είναι κάθε στήλη διαβάζοντας τις πρώτες Χ γραμμές. Αν όλες οι γραμμές μέχρι τη Χ είχαν στο πεδίο C νούμερα και η X+1 έχει κείμενο, ο provider θα νομίσει ότι η στήλη C περιέχει αριθμούς και θα ρίξει exception όταν προσπαθήσει να διαβάσει τη γραμμή Χ+1. &lt;/P&gt;</description></item><item><title>Απ: Διαβασμα συγκερκριμενων κελιων απο αρχειο Excel</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43444.aspx</link><pubDate>Mon, 14 Jul 2008 19:04:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43444</guid><dc:creator>kallileo</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43444.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=43444</wfw:commentRss><description>Ευχαριστω πολυ...&lt;br /&gt;Κατάλαβα ακριβως τι γίνεται.</description></item><item><title>Απ: Διαβασμα συγκερκριμενων κελιων απο αρχειο Excel</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43396.aspx</link><pubDate>Fri, 11 Jul 2008 05:03:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43396</guid><dc:creator>SotirisPap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43396.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=43396</wfw:commentRss><description>Option Strict On&lt;br&gt;Imports System&lt;br&gt;Imports System.IO&lt;br&gt;Imports Excel&lt;br&gt;Public Class Form1&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim EXL As New Excel.Application()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim axl As String = "C:\Axl.xls"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wb0 As Excel.Workbook&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sh1 As Excel.Worksheet&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub ΔημιουργίαΑποθηκευτικούXls()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If EXL Is Nothing Then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox("Δεν είναι Εγκατεστημένο το Excel")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not File.Exists(axl) Then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ΔημιουργίαXls()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ΑνοιγμαXls()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub ΔημιουργίαXls()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb0 = EXL.Workbooks.Add()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sh1 = CType(wb0.Worksheets(1), Worksheet)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb0.SaveAs(axl)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub ΑνοιγμαXls()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb0 = EXL.Workbooks.Open(axl)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sh1 = CType(wb0.Worksheets(1), Worksheet)&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i As Integer = 0 To 15&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j As Integer = 0 To 14&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write(CType(sh1.Cells(i + 12, j + 2), Range).Value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub ΚλείσιμοEXL()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim wkb As Excel.Workbook&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each wkb In EXL.Workbooks&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wkb.Save()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next wkb&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sh1 = Nothing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wb0 = Nothing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXL.Workbooks.Close()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXL.Quit()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;End Class&lt;br&gt;&lt;br&gt;Το παραπάνω μπορεί να σε ενδιαφέρει είναι σε vb αλλά δεν ξέρω καθόλου από C#.Μπορείς βέβαια να το μεταφέρεις σε C#.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Διαβασμα συγκερκριμενων κελιων απο αρχειο Excel</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43393.aspx</link><pubDate>Fri, 11 Jul 2008 03:42:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43393</guid><dc:creator>nikolaosk</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43393.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=43393</wfw:commentRss><description>&lt;P&gt;φαντάζομαι θέλεις να πάρεις τα δεδομένα και να τα φέρεις σε ένα datagridview/gridview ανάλογα με την εφαρμογή που θέλεις να φτιάξεις.για να διαβάσεις Data από excel&lt;/P&gt;
&lt;P&gt;δες λίγο εδώ αυτά τα άρθρα&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.c-sharpcorner.com/UploadFile/mgold/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NET11282005034134AM/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NET.aspx"&gt;http://www.c-sharpcorner.com/UploadFile/mgold/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NET11282005034134AM/HowtoOepnandReadanExcelSpreadsheetinaListViewin.NET.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/302096"&gt;http://support.microsoft.com/kb/302096&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;κάπου στον κώδικα γράφεις αφού θέσεις τα Object references κάτι σαν το παρακάτω όπου θέτεις το range των κελιών που θέλεις να διαβάσεις&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; range = objSheet.get_Range("A1", "E5");&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;ελπίζω να βοήθησα&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Διαβασμα συγκερκριμενων κελιων απο αρχειο Excel</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43388.aspx</link><pubDate>Thu, 10 Jul 2008 23:03:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43388</guid><dc:creator>kallileo</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43388.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=43388</wfw:commentRss><description>Εχω καποια αρχεια Excel τα οποια περιεχουν καπου πινακες με τιμες.&lt;br /&gt;&lt;br /&gt;Ουστικα ειναι ενας πινακας που εχει σαν στηλες το πλατος του προιντος και σαν γραμμες το μηκος.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	500	600	700&lt;br /&gt;500	198	201	204&lt;br /&gt;600	206	208	211&lt;br /&gt;700	213	215	219&lt;br /&gt;800	221	223	227&lt;br /&gt;900	229	232	234&lt;br /&gt;&lt;br /&gt;Ειναι της παραπανω μορφης μορφης.&lt;br /&gt;Το θεμα ειναι οτι στο ιδιο φυλλο του excel μπορει να εχει 2-3 πινακες σε διαφορα σημεια αλλα και γραφικα και αλλα.&lt;br /&gt;&lt;br /&gt;Μπορω να θεσω τα ορια κελιων τα οποια θα διαβασω ωστε να μην εχω οτι να'ναι δεδομενα? Ας που εχω δεδομενα απο το κελι Β12 εως 027.&lt;br /&gt;&lt;br /&gt;Πως θα πρεπει να το προσεγγισω με την C#?&lt;br /&gt;&lt;br /&gt;Ευχαριστω.</description></item></channel></rss>