Bonjour à tous,
J'essaye de lire un énorme fichier excel (plusieurs centaines de Mo) via OpenXML.
J'ai trouvé la méthode SAX qui semble parfaite pour ce cas de figure mais je coince sur la récupération des données de type string.
Le programme énumère bien les données présente dans les feuilles sélectionnées
mais je n'arrive pas a récuperer les véritables données qui se trouvent dans la SharedStringTable.
Du coup le programme ne me remonte que des séries de chiffres au lieu des valeurs que je cherche.
Je coince un peu sur cette partie.
Si quelqu'un a une piste pour moi...
Je vous remercie
G
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 Public Class StockedItems Public Sub ReadExcelFileSAX(ByVal fileName As String) Using spreadsheetDocument As SpreadsheetDocument = SpreadsheetDocument.Open(fileName, False) Dim workbookPart As WorkbookPart = spreadsheetDocument.WorkbookPart Dim worksheetPart As WorksheetPart Dim text As String Dim reader As OpenXmlReader Dim objWriter As System.IO.StreamWriter For Each s As Sheet In workbookPart.Workbook.Sheets If s.Name = "Products" Then worksheetPart = workbookPart.GetPartById(s.Id) reader = OpenXmlReader.Create(worksheetPart) 'Dim stringTable = workbookPart.GetPartsOfType(Of SharedStringTable).FirstOrDefault() While reader.Read() If reader.ElementType = GetType(CellValue) Then text = reader.GetText() Debug.Print(text) End If End While MsgBox("Products complete") ElseIf s.Name = "Contract Pricing" Then worksheetPart = workbookPart.GetPartById(s.Id) reader = OpenXmlReader.Create(worksheetPart) While reader.Read() If reader.ElementType = GetType(CellValue) Then text = reader.GetText() End If End While MsgBox("Price complete") End If Next End Using End Sub End Class
Partager