diff --git a/src/Bravo.csproj b/src/Bravo.csproj
index 8398b862..fec3c48d 100644
--- a/src/Bravo.csproj
+++ b/src/Bravo.csproj
@@ -62,7 +62,7 @@
-
+
diff --git a/src/Controllers/ExportDataController.cs b/src/Controllers/ExportDataController.cs
index 1f31b5ca..a2247bad 100644
--- a/src/Controllers/ExportDataController.cs
+++ b/src/Controllers/ExportDataController.cs
@@ -106,11 +106,9 @@ public async Task ExportDelimitedTextFile(ExportDelimitedTextFrom
[ProducesDefaultResponseType]
public IActionResult ExportExcelFile(ExportExcelFromPBIReportRequest request, CancellationToken cancellationToken)
{
- var useZip64 = CommonHelper.IsKeyDown(System.Windows.Forms.Keys.ControlKey);
-
if (WindowDialogHelper.SaveFileDialog(fileName: request.Report!.ReportName, filter: null, defaultExt: "XLSX", out var path, cancellationToken))
{
- var job = _exportDataService.ExportExcelFile(request.Report, request.Settings!, path, useZip64, cancellationToken);
+ var job = _exportDataService.ExportExcelFile(request.Report, request.Settings!, path, cancellationToken);
return Ok(job);
}
@@ -132,14 +130,12 @@ public IActionResult ExportExcelFile(ExportExcelFromPBIReportRequest request, Ca
[ProducesDefaultResponseType]
public async Task ExportExcelFile(ExportExcelFromPBICloudDatasetRequest request, CancellationToken cancellationToken)
{
- var useZip64 = CommonHelper.IsKeyDown(System.Windows.Forms.Keys.ControlKey);
-
if (await _authenticationService.IsPBICloudSignInRequiredAsync(cancellationToken))
return Unauthorized();
if (WindowDialogHelper.SaveFileDialog(fileName: request.Dataset!.DisplayName, filter: null, defaultExt: "XLSX", out var path, cancellationToken))
{
- var job = _exportDataService.ExportExcelFile(request.Dataset, request.Settings!, path, _authenticationService.PBICloudAuthentication.AccessToken, useZip64, cancellationToken);
+ var job = _exportDataService.ExportExcelFile(request.Dataset, request.Settings!, path, _authenticationService.PBICloudAuthentication.AccessToken, cancellationToken);
return Ok(job);
}
diff --git a/src/Services/ExportDataService.cs b/src/Services/ExportDataService.cs
index e2d8b5f1..d6ed43ba 100644
--- a/src/Services/ExportDataService.cs
+++ b/src/Services/ExportDataService.cs
@@ -27,9 +27,9 @@ public interface IExportDataService
ExportDataJob ExportDelimitedTextFile(PBICloudDataset dataset, ExportDelimitedTextSettings settings, string path, string accessToken, CancellationToken cancellationToken);
- ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSettings settings, string path, bool useZip64, CancellationToken cancellationToken);
+ ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSettings settings, string path, CancellationToken cancellationToken);
- ExportDataJob ExportExcelFile(PBICloudDataset dataset, ExportExcelSettings settings, string path, string accessToken, bool useZip64, CancellationToken cancellationToken);
+ ExportDataJob ExportExcelFile(PBICloudDataset dataset, ExportExcelSettings settings, string path, string accessToken, CancellationToken cancellationToken);
ExportDataJob? QueryExportJob(PBIDesktopReport report);
@@ -110,7 +110,7 @@ public ExportDataJob ExportDelimitedTextFile(PBICloudDataset dataset, ExportDeli
return job;
}
- public ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSettings settings, string path, bool useZip64, CancellationToken cancellationToken)
+ public ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSettings settings, string path, CancellationToken cancellationToken)
{
settings.ExportPath = path;
@@ -119,7 +119,7 @@ public ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSetting
{
using var connection = AdomdConnectionWrapper.ConnectTo(report);
- ExportExcelFileImpl(job, settings, connection, useZip64, cancellationToken);
+ ExportExcelFileImpl(job, settings, connection, cancellationToken);
job.SetCompleted();
}
catch (OperationCanceledException)
@@ -139,7 +139,7 @@ public ExportDataJob ExportExcelFile(PBIDesktopReport report, ExportExcelSetting
return job;
}
- public ExportDataJob ExportExcelFile(PBICloudDataset dataset, ExportExcelSettings settings, string path, string accessToken, bool useZip64, CancellationToken cancellationToken)
+ public ExportDataJob ExportExcelFile(PBICloudDataset dataset, ExportExcelSettings settings, string path, string accessToken, CancellationToken cancellationToken)
{
settings.ExportPath = path;
@@ -148,7 +148,7 @@ public ExportDataJob ExportExcelFile(PBICloudDataset dataset, ExportExcelSetting
{
using var connection = AdomdConnectionWrapper.ConnectTo(dataset, accessToken);
- ExportExcelFileImpl(job, settings, connection, useZip64, cancellationToken);
+ ExportExcelFileImpl(job, settings, connection, cancellationToken);
job.SetCompleted();
}
catch (OperationCanceledException)
@@ -303,7 +303,7 @@ static int WriteData(ExportDataTable table, CsvWriter writer, IDataReader reader
}
}
- private static void ExportExcelFileImpl(ExportDataJob job, ExportExcelSettings settings, AdomdConnectionWrapper connection, bool useZip64, CancellationToken cancellationToken)
+ private static void ExportExcelFileImpl(ExportDataJob job, ExportExcelSettings settings, AdomdConnectionWrapper connection, CancellationToken cancellationToken)
{
var xlsxFile = new FileInfo(settings.ExportPath);
@@ -313,15 +313,8 @@ private static void ExportExcelFileImpl(ExportDataJob job, ExportExcelSettings s
using var command = connection.CreateAdomdCommand();
using var _ = cancellationToken.Register(() => command.Cancel());
- if (useZip64 && AppEnvironment.IsDiagnosticLevelVerbose)
- {
- // Zip64 is an experimental feature in Bravo that must be explicitly enabled by the user and is not enabled by default because it may create a file that Excel or LibreOffice reports as corrupt.
- // See https://github.com/salvois/LargeXlsx/issues/3#issuecomment-867675374 and https://github.com/salvois/LargeXlsx/issues/5#issuecomment-981072044
- AppEnvironment.AddDiagnostics(DiagnosticMessageType.Text, name: $"{nameof(ExportDataService)}.{nameof(ExportExcelFileImpl)}", content: $"Experimental feature: useZip64 is enabled");
- }
-
using var fileStream = new FileStream(xlsxFile.FullName, FileMode.Create, FileAccess.Write);
- using var xlsxWriter = new XlsxWriter(fileStream, useZip64: useZip64);
+ using var xlsxWriter = new XlsxWriter(fileStream, compressionLevel: XlsxCompressionLevel.Fastest);
foreach (var (tableName, tableIndex) in settings.Tables.WithIndex())
{