首页 > 解决方案 > C# 直接从流中打开和编辑 .xls 文件

问题描述

如何.xls从流中打开文件?

using (MemoryStream ms = new MemoryStream())
using (CryptoStream sc = new CryptoStream(ms, new FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces), CryptoStreamMode.Write))
using (StreamWriter sw = new StreamWriter(cs))
{
    sw.Write(base64String);
    sw.Flush;
}

我正在尝试使用Microsoft.Office.Interop,但看起来它的Excel.Application().Workbooks.Open方法只是启动Excel应用程序。

标签: c#excelstream

解决方案


从流中读取您可以使用ExcelDataReader包:

using ExcelDataReader;

using (MemoryStream ms = new MemoryStream())
using (CryptoStream sc = new CryptoStream(ms, new 
FromBase64Transform(FromBase64TransformMode.IgnoreWhiteSpaces), CryptoStreamMode.Write))
using (StreamWriter sw = new StreamWriter(cs))
{
    sw.Write(base64String);
    sw.Flush;

    using (IExcelDataReader er = ExcelReaderFactory.CreateBinaryReader(ms))
    {
        while(er.Read())
        {
            for (int i = 0; i < er.FieldCount; i++)
                Console.Write(er.GetValue(i) + " ");
            Console.WriteLine();
        }
    }
}

然后,您可能需要另外安装ExcelDataReader.DataSet包。


推荐阅读