diff --git a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.DefaultOpenXml.cs b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.DefaultOpenXml.cs index d99040340672414c450b54e6a337af3db3b14133..5495818d436397edfbd9772ff4986fa941ac9741 100644 --- a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.DefaultOpenXml.cs +++ b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.DefaultOpenXml.cs @@ -1,4 +1,4 @@ -using MiniExcelLibs.Attributes; +using MiniExcelLibs.Attributes; using MiniExcelLibs.OpenXml.Constants; using MiniExcelLibs.OpenXml.Models; using MiniExcelLibs.OpenXml.Styles; @@ -215,7 +215,11 @@ private Tuple GetCellValue(int rowIndex, int cellIndex, if (type == typeof(byte[]) && _configuration.EnableConvertByteArray) { var base64 = GetFileValue(rowIndex, cellIndex, value); - return Tuple.Create("4", "str", ExcelOpenXmlUtils.EncodeXML(base64)); + if (_configuration.EnableWriteFilePath) + { + return Tuple.Create("4", "str", ExcelOpenXmlUtils.EncodeXML(base64)); + } + return Tuple.Create("4", "str", ""); } return Tuple.Create("2", "str", ExcelOpenXmlUtils.EncodeXML(value.ToString())); diff --git a/src/MiniExcel/OpenXml/OpenXmlConfiguration.cs b/src/MiniExcel/OpenXml/OpenXmlConfiguration.cs index be111b07110c00fabc34bf7a8b74e672505d88ed..729e0d75b8fde82114c8d89d4ba0ef4073a7d7a7 100644 --- a/src/MiniExcel/OpenXml/OpenXmlConfiguration.cs +++ b/src/MiniExcel/OpenXml/OpenXmlConfiguration.cs @@ -1,4 +1,4 @@ -using MiniExcelLibs.Attributes; +using MiniExcelLibs.Attributes; namespace MiniExcelLibs.OpenXml { @@ -19,7 +19,7 @@ public class OpenXmlConfiguration : Configuration public bool EnableSharedStringCache { get; set; } = true; public long SharedStringCacheSize { get; set; } = 5 * 1024 * 1024; public DynamicExcelSheet[] DynamicSheets { get; set; } - + public bool EnableWriteFilePath{ get; set; } = true; /// /// Calculate column widths automatically from each column value. /// diff --git a/tests/MiniExcelTests/MiniExcelOpenXmlConfigurationTest.cs b/tests/MiniExcelTests/MiniExcelOpenXmlConfigurationTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..077ff0fccbfb2519cde49989cf5ef72daeae11e9 --- /dev/null +++ b/tests/MiniExcelTests/MiniExcelOpenXmlConfigurationTest.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MiniExcelLibs.Attributes; +using MiniExcelLibs.OpenXml; +using MiniExcelLibs.Tests.Utils; +using Xunit; + +namespace MiniExcelLibs.Tests +{ + public class MiniExcelOpenXmlConfigurationTest + { + [Fact] + public void EnableWriteFilePathTest() + { + var img = new HttpClient().GetByteArrayAsync("https://user-images.githubusercontent.com/12729184/150462383-ad9931b3-ed8d-4221-a1d6-66f799743433.png").Result; + var value = new[] { + new ImgExportTestDto{ Name="github",Img=File.ReadAllBytes(PathHelper.GetFile("images/github_logo.png"))}, + new ImgExportTestDto{ Name="google",Img=File.ReadAllBytes(PathHelper.GetFile("images/google_logo.png"))}, + new ImgExportTestDto{ Name="microsoft",Img=File.ReadAllBytes(PathHelper.GetFile("images/microsoft_logo.png"))}, + new ImgExportTestDto{ Name="reddit",Img=File.ReadAllBytes(PathHelper.GetFile("images/reddit_logo.png"))}, + new ImgExportTestDto{ Name="statck_overflow",Img=File.ReadAllBytes(PathHelper.GetFile("images/statck_overflow_logo.png"))}, + new ImgExportTestDto{ Name="statck_over",Img=img}, + }; + var path=PathHelper.GetFile("Test_EnableWriteFilePath.xlsx"); + MiniExcel.SaveAs(path, value, configuration: new OpenXmlConfiguration() { EnableWriteFilePath=false},overwriteFile:true); + Assert.True(File.Exists(path)); + + var rows = MiniExcel.Query(path).ToList(); + Assert.True( rows.All(x => x.Img is null || x.Img.Length < 1)); + } + + + } + + class ImgExportTestDto + { + public string Name { get; set; } + [ExcelColumn(Name = "图片",Width = 100)] + public byte[] Img { get; set; } + } +}