这适用于Windows Console App
我正在将Excel
文件保存为Base64
string
作为报告的模板。使用以下代码将文件编码为base64
string
。然后,我将其存储在SQL
数据库NVARCHAR(MAX)
Stream myStream = null;
string base64String;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
MemoryStream ms = new MemoryStream();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
using (myStream)
{
myStream.CopyTo(ms);
byte[] excelBytes = ms.ToArray();
base64String = Convert.ToBase64String(excelBytes, Base64FormattingOptions.None);
FileNameTxt.Text = openFileDialog1.FileName;
}
然后我检索此文件并解码字符串并创建一个ClosedXML
excel文件。
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
StoredFile = reader["StoredFile"].ToString();
}
reader.Close();
wb = workBook(StoredFile);
}
public static XLWorkbook workBook(string File)
{
byte[] data = System.Convert.FromBase64String(File);
MemoryStream ms = new MemoryStream(data);
XLWorkbook wb = new XLWorkbook(ms);
return wb;
}
问题是最终结果是丢失了一些格式的工作簿。主要似乎只影响边框格式。
我不知道使用导致此问题的ClosedXML
编码,解码或生成新文件是否存在问题。非常感谢任何方向或想法。