Wie man erstellt Excel-Instanz auf Clientfestplatte speichern mit Speichern als Dialogfeld
-
12-10-2019 - |
Frage
In einem Projekt, wenn der Benutzer auf eine Schaltfläche klicken, werden einige Daten in eine Excel-Instanz von Interop-Bibliothek erhalten und geschrieben.
Nun, ich möchte, dass: Wenn Excel-Instanz alle Daten erhalten, ein Dialogfeld Speichern geöffnet sein muste und speichern Sie diese Excel-Instanz Benutzer angegebenen Pfad
.Gibt es eine Möglichkeit, es zu tun?
Edit:
Mein Code, um Daten zu Excel zu erhalten, ist hier:
Public Sub ExportToExcel(ByVal dt As DataTable, ByVal outputPath As String)
' Create the Excel Application object
Dim excelApp As New Microsoft.Office.Interop.Excel.ApplicationClass
' Create a new Excel Workbook
Dim excelWorkbook As Excel.Workbook = excelApp.Workbooks.Add(Type.Missing)
Dim excelSheet As Excel.Worksheet = excelWorkbook.Worksheets(1)
excelApp.Visible = True
' Copy each DataTable as a new Sheet
'sheetIndex += 1
'' Create a new Sheet
'excelSheet = CType( _
' excelWorkbook.Sheets.Add(excelWorkbook.Sheets(sheetIndex), _
' Type.Missing, 1, Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet), Microsoft.Office.Interop.Excel.Worksheet)
excelSheet.Name = "Bayi"
' Copy the column names (cell-by-cell)
For col = 0 To dt.Columns.Count - 1
excelSheet.Cells(1, col + 1) = dt.Columns(col).ColumnName
Next
CType(excelSheet.Rows(1, Type.Missing), Microsoft.Office.Interop.Excel.Range).Font.Bold = True
' Copy the values (cell-by-cell)
For col = 0 To dt.Columns.Count - 1
For row = 0 To dt.Rows.Count - 1
excelSheet.Cells(row + 2, col + 1) = dt.Rows(row).ItemArray(col)
Next
Next
excelSheet = Nothing
' Save and Close the Workbook
excelWorkbook.SaveAs(outputPath, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, _
Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, _
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)
excelWorkbook.Close(True, Type.Missing, Type.Missing)
excelWorkbook = Nothing
' Release the Application object
excelApp.Quit()
excelApp = Nothing
' Collect the unreferenced objects
GC.Collect()
GC.WaitForPendingFinalizers()
End Sub
Lösung
Ich bin nicht sicher, dass das ist, was Sie wollen, aber wenn Sie einen Benutzer herunterladen eine Excel-Datei lassen wollen, dass Sie sich auf der Server-Seite erstellt haben, dann schreiben Sie einfach den Inhalt der Excel-Datei auf die Antwort stellen Sie den richtigen MIME-Typ - und los geht! P. S. Vergessen Sie nicht, die aktuell erzeugte Antwort zu löschen.
Andere Tipps
Wenn u versuchen, es von einem Webserver an den Client hinzufügen möchten, gibt es keine Möglichkeit, dass Fall. Ohne Sie zu bekommen einen Flash / Silverlight auf dem Client oder etwas ähnliches zu installieren, über die Sicherheit der Browser-Client-Software zu gehen.
Aktualisiert: Sie ist " Ein kurzer Blick auf Silverlight 3: Datei speichern Dialog “ Und Wie Lesen und Schreiben von Dateien in JavaScript