IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Formater feuille excel [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 11
    Par défaut Formater feuille excel
    Bonjour,

    J'aimerais pouvoir formatter les cellules d'une feuille d'un fichier excel au format texte car actuellement, lorsque je veux l'exporter dans un BD SQL, je perds des données. Manuellement, je le format et ensuite avec succès je peux l'exporter dans ma BD, mais j'aimerais automatiser cette tâche. Je vais mettre ce petit bout de code dans un script SSIS de ma BD SQL.

    Merci!

  2. #2
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 11
    Par défaut Résolu: Formater feuille excel
    J'ai trouvé une solution à mon problème et je vous la partage:
    Le code suivant est inséré dans un "Script Task" de SSIS.
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Imports System
    Imports System.Data
    Imports System.Math
    Imports Microsoft.SqlServer.Dts.Runtime
    Imports Microsoft.Office.Interop.Excel
     
    <System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
    <System.CLSCompliantAttribute(False)> _
    Partial Public Class ScriptMain
        Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
        Enum ScriptResults
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        End Enum
        Public Sub Main()
     
            Dim Excel As New Microsoft.Office.Interop.Excel.Application
            Dim FileName As String = "\\BLMCIK\BWAsset\BW_GWC.xls"
            Dim MyIntPtr As IntPtr = Excel.Hwnd
     
            Excel.DisplayAlerts = False 'Nous ne voulons pas voir un alerte pop-up 
     
            Try
                'Déclaration du classeur Excel.
                Dim Workbook As Microsoft.Office.Interop.Excel.Workbook
                Workbook = Excel.Workbooks.Open(FileName, , False) 'False = read-write.
     
                'Déclaration de la feuille à être manipulée.
                Dim Worksheet As Microsoft.Office.Interop.Excel.Worksheet = Nothing
                Worksheet = Workbook.Sheets(1)
     
                'Forcer le type de la cellule en format texte
                Worksheet.Range(Worksheet.Cells(2, 1), Worksheet.Cells(3200, 12)).Select()
                Excel.Selection.numberFormat = "@"
     
                'Sauvegarde du fichier.
                Workbook.Save()
     
                'Nettoyage de la mémoire. 
                FileName = Nothing
                Worksheet = Nothing
                Workbook = Nothing
     
                'On quitte Excel
                Excel.Quit()
     
                'S'assure que l'exécutable excel.exe est bien terminé avant de quitter.
                For Each proc As System.Diagnostics.Process In System.Diagnostics.Process.GetProcessesByName("Excel")
                    If proc.MainWindowHandle = MyIntPtr Then
                        proc.Kill()
                    End If
                Next
     
                Excel = Nothing
                Dts.TaskResult = ScriptResults.Success
     
            Catch ex As Exception
     
                Excel.Quit()
     
                For Each proc As System.Diagnostics.Process In System.Diagnostics.Process.GetProcessesByName("Excel")
                    If proc.MainWindowHandle = MyIntPtr Then
                        proc.Kill()
                    End If
     
                Next
                Excel = Nothing
                FileName = Nothing
                Dts.TaskResult = ScriptResults.Failure
     
            End Try
     
        End Sub
     
    End Class

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Format feuille excel
    Par Fatines72 dans le forum Excel
    Réponses: 1
    Dernier message: 03/02/2011, 19h58
  2. macro excel pour transformer feuille excel au format html
    Par zineb_cerisette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2010, 19h23
  3. [XL-2000] Changer le format à l'impression d'une feuille excel
    Par mich2p1 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/06/2010, 11h05
  4. [AC-2003] Changer le format de cellules d'une feuille Excel
    Par bdcds dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/06/2009, 17h18
  5. Réponses: 0
    Dernier message: 29/05/2008, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo