Ich benötige Excel-Dateien (mit mehreren Blättern) mit .net auf einem Produktionsserver (Windows Server 2008), wo Microsoft Office nicht installiert ist. Kann dies mit Hilfe von VS2010 und Windows Server 2008 erfüllt werden. oder gibt es eine Möglichkeit, dies mit Office-Webapps zu erreichen.Erstellen Excel-Datei in .net ohne Office installiert
Antwort
können Sie diese Bibliothek verwenden: http://epplus.codeplex.com/releases/view/42439
Es überspringt die Verwendung von Excel-Binärdateien, sich für das Excel XML-Format, also einfacher, einfacher Text zu schreiben, die Excel richtig und machen verstehen.
Wenn das Ziel Office 2007 oder 2010 ist, können Sie mit dieser kostenlosen Bibliothek versuchen http://epplus.codeplex.com/
Wenn das Ziel < ist = bis 2003 können Sie versuchen, mit GemBox.Spreadsheet
Die kostenlosen Version ist beschränkt auf: Maximale Anzahl der Zeilen pro Blatt ist 150. Maximale Anzahl der Blätter pro Arbeitsmappe ist 5.
Ich habe EPPlus ausprobiert. Ich erhalte nur eine NullReferenceException in der Bibliothek, wenn versucht wird, die Excel-Dateien zu lesen, mit denen ich arbeite. –
Verwenden Sie das offizielle Microsoft Open XML SDK.
Ich verwende das OpenXML SDK, das für diesen Zweck vorgesehen ist. Es erlaubt Ihnen nicht, Funktionen in einer Serverumgebung tatsächlich zu berechnen und auszuführen, aber es ist sehr gut zum Erstellen und Bearbeiten von Arbeitsmappen.
Download:
Dokumentation:
Wenn Sie Produkte/Bibliotheken/irgendetwas referenzieren, fügen Sie bitte Links hinzu. –
Finden Sie nicht, dass OpenXML extrem schwierig zu benutzen ist? Nur etwas Einfaches zu tun, wie einen Hyperlink hinzuzufügen, erfordert viel Code. – David
Versuchen Sie folgendes:
Sub exportExcel(ByVal grdView As DataGridView, ByVal fileName As String, _
ByVal fileExtension As String, ByVal filePath As String)
' Choose the path, name, and extension for the Excel file
Dim myFile As String = filePath & "\" & fileName & fileExtension
' Open the file and write the headers
Dim fs As New IO.StreamWriter(myFile, False)
Try
fs.WriteLine("<?xml version=""1.0""?>")
fs.WriteLine("<?mso-application progid=""Excel.Sheet""?>")
fs.WriteLine("<ss:Workbook xmlns:ss=""urn:schemas-microsoft-com:office:spreadsheet"">")
' Create the styles for the worksheet
fs.WriteLine(" <ss:Styles>")
' Style for the column headers
fs.WriteLine(" <ss:Style ss:ID=""1"">")
fs.WriteLine(" <ss:Font ss:Bold=""1""/>")
fs.WriteLine(" <ss:Alignment ss:Horizontal=""Center"" ss:Vertical=""Center"" " & _
"ss:WrapText=""1""/>")
fs.WriteLine(" <ss:Interior ss:Color=""#C0C0C0"" ss:Pattern=""Solid""/>")
fs.WriteLine(" </ss:Style>")
' Styles for the column information
fs.WriteLine(" <ss:Style ss:ID=""2"">")
fs.WriteLine(" <ss:Alignment ss:Vertical=""Center"" ss:WrapText=""1""/>")
fs.WriteLine(" </ss:Style>")
fs.WriteLine(" </ss:Styles>")
' Write the worksheet contents
fs.WriteLine("<ss:Worksheet ss:Name=""EasyWorks"">")
fs.WriteLine(" <ss:Table>")
For i As Integer = 0 To grdView.Columns.Count - 1
fs.WriteLine(String.Format(" <ss:Column ss:Width=""{0}""/>", _
grdView.Columns.Item(i).Width))
Next
fs.WriteLine(" <ss:Row>")
For i As Integer = 0 To grdView.Columns.Count - 1
If grdView.Columns(i).Visible Then
fs.WriteLine(String.Format(" <ss:Cell ss:StyleID=""1"">" & _
"<ss:Data ss:Type=""String"">{0}</ss:Data></ss:Cell>", _
grdView.Columns.Item(i).HeaderText))
End If
Next
fs.WriteLine(" </ss:Row>")
' Check for an empty row at the end due to Adding allowed on the DataGridView
Dim subtractBy As Integer, cellText As String
If grdView.AllowUserToAddRows = True Then subtractBy = 2 Else subtractBy = 1
' Write contents for each cell
For i As Integer = 0 To grdView.RowCount - subtractBy
If grdView.Rows(i).Visible Then
fs.WriteLine(String.Format(" <ss:Row ss:Height=""{0}"">", _
grdView.Rows(i).Height))
For intCol As Integer = 0 To grdView.Columns.Count - 1
If grdView.Columns(intCol).Visible Then
cellText = grdView.Item(intCol, i).Value.ToString
' Check for null cell and change it to empty to avoid error
If cellText = vbNullString Then cellText = ""
fs.WriteLine(String.Format(" <ss:Cell ss:StyleID=""2"">" & _
"<ss:Data ss:Type=""String"">{0}</ss:Data></ss:Cell>", _
cellText.ToString))
End If
Next
fs.WriteLine(" </ss:Row>")
End If
Next
' Close up the document
fs.WriteLine(" </ss:Table>")
fs.WriteLine("</ss:Worksheet>")
fs.WriteLine("</ss:Workbook>")
fs.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, "ERROR: ", MessageBoxButtons.OK, MessageBoxIcon.Error)
Err.Clear()
Finally
myFile = Nothing
fs = Nothing
End Try
End Sub
- 1. .NET Office-Interop mit Version unabhängige Office
- 2. Office-Dokumente ohne Office konvertieren
- 3. Malvorlagen Excel-Zellen mit C# ohne Microsoft Office installiert?
- 4. Wie kann ich eine Excel-Datei erstellen, ohne dass Office oder Abhängigkeiten von Drittanbietern installiert sind?
- 5. erstellen Benutzerkonten in Office 365 mit C# .net Code dynamisch
- 6. .Net Office Word Setup
- 7. Ist Office 2007 PIA-Bereitstellung ohne Office 2007 möglich?
- 8. VSTO-Projekt mit mehreren Office-Versionen installiert
- 9. Office-Add-In ohne SSL
- 10. Office PIA und .NET Framework-Versionskompatibilität
- 11. Office 2003 PIA Voraussetzung im .NET-Framework und Office 2007
- 12. Tools, die .NET Microsoft Office-Add-In verschleiern
- 13. Wie man einen .NET Windows-Dienst ohne Antiviren-Probleme installiert
- 14. Office 2003 PIAs mit Office 2007
- 15. Anwendung ohne Verweise auf Office, das Office 12 (2007) in GAC für ClickOnce benötigt
- 16. Wird VSTO Runtime mit der MS Office-Installation installiert?
- 17. ausgeführt Msbuild ohne VS installiert
- 18. Erstellen von .net-Anwendungen ohne Visual Studio
- 19. Seriendruck mit Open Office von C# .NET
- 20. Develop Office 2007 Add-In unter .Net V2.0 und VS2008
- 21. Installer für Office VSTO-Add-in für das Bereitstellungssystem erstellen
- 22. Wie installiert man .NET 4.5?
- 23. Erstellen Sie Office 2013-Anwendungen in Visual Studio
- 24. So überprüfen Sie, ob Office auf einem Server installiert ist
- 25. Wie kann ich MS Office Word von .NET ohne Add-Ins starten?
- 26. Ausführen von .NET 3.0-Code von Office 2003
- 27. Anmeldung in Office 365-Mandant aus dem Office-Add-In ohne Popup
- 28. Kann Roslyn ohne Visual Studio installiert werden?
- 29. Lesen von doc und docx Dateien mit C#, ohne dass MS Office auf dem Server installiert ist
- 30. MFMailComposeViewController ohne Mail App installiert?
Mögliche Duplikat http://stackoverflow.com/questions/151005/ create-excel-xls-und-xlsx-file-from-c –
Warum die Down-Abstimmung? Neuer Benutzer ... – jgauffin
Die Antworten zu http://stackoverflow.com/questions/151005 erwähnt viele Bibliotheken, die erreichen, wonach Sie suchen. Ihr Problem ist wirklich ein Problem der Wahl. – Codo