这是为了一个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
的问题。非常感谢任何方向或想法。