2017-01-07 2 views
1

Ich verwende C++/CLI für ein Schulprojekt und ich muss einige Daten ins Excel-Format (xlsx) exportieren. Das Problem ist, dass dieser Code Teile wie AddNewPart hat, die von Visual Studio rot unterstrichen sind (es besagt, dass die angegebene Klasse kein Mitglied AddNewPart hat), aber der Code ist kompiliert und die Anwendung läuft, aber das Ergebnis ist eine beschädigte xlsx Datei (wenn ich versucht, es mit Excel zu öffnen, heißt es, dass es korrupt ist).C++/CLI Open XML SDK Excel kann AddNewPart nicht verwenden

SpreadsheetDocument ^doc = SpreadsheetDocument::Create(path_get, SpreadsheetDocumentType::Workbook); 

WorkbookPart ^wbookpart = doc->AddWorkbookPart(); 
wbookpart->Workbook = gcnew Workbook(); 

WorksheetPart^ worksheetPart = wbookpart->AddNewPart<WorksheetPart^>(); 
SheetData^ sheetData = gcnew SheetData(); 
worksheetPart->Worksheet = gcnew Worksheet(); 
worksheetPart->Worksheet->AppendChild(sheetData); 

Sheets^ sheets = doc->WorkbookPart->Workbook->AppendChild<Sheets^>(gcnew Sheets()); 
Sheet^ sheet = gcnew Sheet(); 
sheet->Id = doc->WorkbookPart->GetIdOfPart(worksheetPart); 
sheet->SheetId = 1; 
sheet->Name = "mySheet"; 
sheets->Append(sheet); 
wbookpart->Workbook->Save(); 
doc->Close(); 
+0

Auf den ersten Blick sieht es so aus, als ob Sie ein Paar '^' vermissen. Es hilft jedoch sehr, wenn Sie uns die genaue Fehlermeldung mitteilen. –

+0

Ich habe den ganzen Code und den Fehler hinzugefügt! Danke für die schnelle Antwort! –

Antwort

0

Ich hatte das gleiche Problem wie Sie, Visual Studio berichtet, dass die Klasse kein Mitglied, aber es kompiliert noch und scheint immer noch die Parameter für mich zu füllen. Versuchen Sie, mit dem Debugger durchzugehen und zu prüfen, ob dies für Sie gleich ist. Wenn ich versuche, AddNewPart in etwas umzubenennen, das definitiv nicht existiert, kompiliert es nicht für mich.

Als eine weniger komplizierte Prüfung meldet GetIdOfPart auch die gleiche Fehlermeldung für mich, aber dieser Parameter füllt definitiv den Debugger aus, obwohl Visual Studio behauptet, die Klasse habe kein Mitglied.

Verwandte Themen