Bonjour,
actuellement je developpe une application en VB.net qui utilise la reference Excel 11.0 pour permettre a mon programme d'exporter des données stockées dans une base de données Access vers Excel ( a des endroits précis cf code : j'utilise les objets excel : excel.Cells(1, 1) par exemple pour ecrire du texte dans la premiere ligne/ premiere colone
mon code est le suivant :
puis j'apelle dans mon code d'export vers excel comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 ---------------------------------------------------------------------- 'CLASSE EXCEL POUR INITIALISER ,EXPORTER ,TERMINER L'OBJET EXCEL ---------------------------------------------------------------------- Imports System.Data.OleDb Imports Excel Public Class Excel Shared ProcId As Integer Shared wBook As Global.Excel.Workbook Shared wSheet As Global.Excel.Worksheet Shared excel As Global.Excel.ApplicationClass Shared Sub Export(ByVal Xlfile As String, ByVal Xlsheet As String, ByVal Dr As OleDbDataReader, ByVal fromCol As Integer) initialseExcel() wBook = excel.Workbooks.Open(Xlfile) wSheet = wBook.Sheets(Xlsheet) While Dr.Read For i As Integer = 0 To Dr.FieldCount - 1 excel.Cells(fromCol, i + 1) = Dr(i).ToString Next fromCol += 1 End While wBook.Save() destroyExcel() End Sub 'initialise excel Shared Sub initialseExcel() excel = New Global.Excel.ApplicationClass End Sub 'terminer excel "killprocess" Shared Sub destroyExcel() Dim ExcelProcess() As Process = Process.GetProcesses() Dim j As Integer For j = 0 To ExcelProcess.GetUpperBound(0) If ExcelProcess(j).ProcessName = "EXCEL" Then ProcId = ExcelProcess(j).Id Exit For End If Next j If ProcId = 0 Then Exit Sub Process.GetProcessById(ProcId).Kill() End Sub End Class
où dataaccess est une classe avec la methode getReader qui renvoi tout simplement un OledbDataReader
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Excel.Export(FileSaver.FileName, "RapObs", DataAccess.getReader("select * from observations", Nothing), 15)
tout ca c'est que pour vous donner une idée
le probleme est le suivant :
au niveau de l'export des données vers excel meme si je specifie le nom du classeur : sheet("RapObs") dans cet exemple le programme ne change pas de classeur ==> resultat les données sont toujours écrites dans le meme sheet !!
merci de votre aide
et longue vie a Developpez.net![]()
Partager