编码和解码excel文件为Base64字符串

时间:2015-08-25 18:51:37

标签: c# closedxml

这适用于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编码,解码或生成新文件是否存在问题。非常感谢任何方向或想法。

0 个答案:

没有答案