2

这是为了一个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;
}

然后我检索这个文件并解码字符串并创建一个ClosedXMLexcel 文件。

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的问题。非常感谢任何方向或想法。

4

0 回答 0