Hallo Leute,
Ich mcöhte gerne ohne Excel eine Xlsx Datei erstellen.
Dazu habe ich folgende Seite gefunden:
http://www.codeproject.com/Articles/210014/How-to-read-and-write-xlsx-Excel-file-Part-II
Ich habe den Code durch einen Online c# to Vb.net Übersetzer geschickt.
Dieser funktioniert leider nicht
Es gibt da anscheindend ein Problem mit den Streams.
Der originale C# Code:
public void Save(Stream outputStream)
{
using (Ionic.Zip.ZipFile zipFile = new Ionic.Zip.ZipFile())
{
zipFile.AddEntry("[Content_Types].xml", (name, stream) => _
writeContentXml(stream));
zipFile.AddEntry("xl\\workbook.xml", (name, stream) => _
writeWorkBook(stream));
createWorkSheetsEntries(zipFile);
zipFile.AddEntry("xl\\sharedStrings.xml", (name, stream) => _
writeSharedString(stream));
zipFile.AddEntry("_rels\\.rels", (name, stream) => _
writeRelations(stream));
zipFile.AddEntry("docProps\\app.xml", (name, stream) => _
writeApp(stream));
zipFile.AddEntry("docProps\\core.xml", (name, stream) => _
writeCore(stream));
zipFile.AddEntry("xl\\styles.xml", (name, stream) => _
writeStyleSheet(stream));
zipFile.AddEntry("xl\\_rels\\workbook.xml.rels", (name, stream) _
=> writeWorkBookRelations(stream));
zipFile.AddEntry("xl\\theme\\theme1.xml", (name, stream) => _
writeTheme(stream));
zipFile.Save(outputStream);
}
} Daraus wurde dieser Code generiert:
Public Sub Save(outputStream As Stream)
Using zipFile As New Ionic.Zip.ZipFile()
zipFile.AddEntry("[Content_Types].xml", Function(name, stream) writeContentXml( _
stream))
zipFile.AddEntry("xl\workbook.xml", Function(name, stream) writeWorkBook( _
stream))
createWorkSheetsEntries(zipFile)
zipFile.AddEntry("xl\sharedStrings.xml", Function(name, stream) _
writeSharedString(stream))
zipFile.AddEntry("_rels\.rels", Function(name, stream) writeRelations(stream))
zipFile.AddEntry("docProps\app.xml", Function(name, stream) writeApp(stream))
zipFile.AddEntry("docProps\core.xml", Function(name, stream) writeCore(stream))
zipFile.AddEntry("xl\styles.xml", Function(name, stream) writeStyleSheet( _
stream))
zipFile.AddEntry("xl\_rels\workbook.xml.rels", Function(name, stream) _
writeWorkBookRelations(stream))
zipFile.AddEntry("xl\theme\theme1.xml", Function(name, stream) writeTheme( _
stream))
zipFile.Save(outputStream)
End Using
End Sub Wenn ich mir aber zb. ein Sub anschaue, welches aufgerufen wird, dann sieht das so aus:
Private Sub writeCore(ByVal stream As Stream)
Using writer As New StreamWriter(stream)
writer.Write("<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes"" ?>" & _
"" & vbCr & vbLf & " <cp:coreProperties" & _
"xmlns:cp=""http://schemas.openxmlformats.org/package/2006/metadata/core-pro" & _
"erties"" xmlns:dc=""http://purl.org/dc/elements/1.1/""" & _
"xmlns:dcterms=""http://purl.org/dc/terms/""" & _
"xmlns:dcmitype=""http://purl.org/dc/dcmitype/""" & _
"xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">" & vbCr & vbLf & _
" <dc:creator>Administrator</dc:creator> " & vbCr & vbLf & " " & _
"<cp:lastModifiedBy>Windows User</cp:lastModifiedBy> " & vbCr & vbLf & _
" <dcterms:created" & _
"xsi:type=""dcterms:W3CDTF"">2011-06-16T08:14:40Z</dcterms:created> " & _
vbCr & vbLf & " <dcterms:modified" & _
"xsi:type=""dcterms:W3CDTF"">2011-06-16T08:14:40Z</dcterms:modified> " _
& vbCr & vbLf & " </cp:coreProperties>")
End Using
End Sub Ich kapier es einfach nicht, wie die Streams übergeben werden, bzw. wie ich im Sub SAVE die richtige Schreibweise anwende
Kann mir da wer helfen? |