UWP epPlus - выберите каталог для сохранения - PullRequest
0 голосов
/ 01 ноября 2019

Я делаю приложение в VB, используя UWP и epPlus, чтобы сохранить текущую базу данных в файл Excel. Я бы создал всплывающее диалоговое окно, которое позволит клиенту выбрать каталог, в который он хочет сохранить файл Excel. В UWP нет "Savefiledialog" ... Идеи?

ОБНОВЛЕНИЕ

Я попытался использовать FileSavePicker: если я сохраню его в главном каталоге (C: \, Desktop, Documents ...), epPlus не будет работать, но если я сохраню его в другом каталоге (D: \, USB ...), он будет работать ... Как я могу сохранить его в основном каталоге?

Я выкладываю свой код здесь:

Private Async Sub ButtonXls_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)

        OutputTextBlock.Text = ""
        Dim savePicker As FileSavePicker = New FileSavePicker()
        savePicker.SuggestedStartLocation = PickerLocationId.Desktop
        savePicker.FileTypeChoices.Add("Microsoft Excel", New List(Of String)() From {
            ".xlsx"
        })
        savePicker.SuggestedFileName = "Riepilogo_Test"
        Dim file As StorageFile = Await savePicker.PickSaveFileAsync()

        If file IsNot Nothing Then
            CachedFileManager.DeferUpdates(file)

            Dim ExcelPkg As ExcelPackage = New ExcelPackage()
            Dim wsSheet1 As ExcelWorksheet = ExcelPkg.Workbook.Worksheets.Add("Sheet1")

            Using Rng As ExcelRange = wsSheet1.Cells(2, 2, 2, 2)
                Rng.Value = "Text file on Excel here"
                Rng.Style.Font.Size = 16
                Rng.Style.Font.Bold = True
                Rng.Style.Font.Italic = True
            End Using

            wsSheet1.Protection.IsProtected = False
            wsSheet1.Protection.AllowSelectLockedCells = False

            Dim filePath As FileInfo = New FileInfo(file.Path)
            ExcelPkg.SaveAs(filePath)

            Dim status As FileUpdateStatus = Await CachedFileManager.CompleteUpdatesAsync(file)

            If status = FileUpdateStatus.Complete Then
                OutputTextBlock.Text = "File " & file.Name & " was saved."
            ElseIf status = FileUpdateStatus.CompleteAndRenamed Then
                OutputTextBlock.Text = "File " & file.Name & " was renamed and saved."
            Else
                OutputTextBlock.Text = "File " & file.Name & " couldn't be saved."
            End If
        Else
            OutputTextBlock.Text = "Operation cancelled."
        End If

    End Sub
...