【问题标题】:StreamReader and StreamWriter with Excel使用 Excel 的 StreamReader 和 StreamWriter
【发布时间】:2013-12-17 11:31:03
【问题描述】:

我需要一些指导。

我正在使用 StreamReader 读取 excel 文件,然后使用 StreamReader.ReadToEnd(); 将文件获取到 string;方法。然后我使用 StreamWriter.Write() 方法将字符串写入文件系统上的不同位置。

然后我从我之前写的位置重新读取文件。但是,我似乎正在读取一些垃圾值,并且无法从新位置打开 excel 文件...

我在这里做错了什么文件被破坏了吗?我在这里错过了与编码有关的事情吗?

【问题讨论】:

  • 尝试使用BinaryReaderBinaryWriter,或者,如果您只想复制文件,System.IO.File.Copy...

标签: c# .net excel streamreader streamwriter


【解决方案1】:

Excel 文件是二进制文件。 StreamReaderTextReader 的一种,StreamWriterTextWriter 的一种。

二进制文本 - 不是一回事。

【讨论】:

  • 我认为你得到了那些倒退 TextReader 是 StreamReader 的一种类型,TextWriter 是 StreamWriter 的一种类型。
  • 不。 TextReader 是基类。
  • 非常感谢您的回答,现在我更改了从 BinaryReader 读取 xls 的方法,然后将内容转换为字节数组,然后将其转换为字符串并使用将其写回不同的位置BinraryWriter 。但是我仍然无法使用 Excel 打开 xls 文件。它抱怨它不是一个 excel 文件。 .. 它必须与字节顺序标记吗?
  • 不要写成字符串。它不是一个字符串。它是一系列字节。使用File.Copy 有什么问题?
  • 该文件已加密,因此我需要先对其进行解密,然后再将其写入新位置。解密方法接受一个字符串。在尝试解密部分之前,我需要通过准备 BinaryReader ---> 转换为字符串 ----> BinaryWriter ---> BinaryReader 来工作......或者我在这里遗漏了什么?
【解决方案2】:

根据您使用的 Excel 格式,您会发现直接读/写非常痛苦。 NPOI 之类的库让这一切变得容易得多。

读取/写入 xlsx 文件的版本仍处于测试阶段,但在我的使用中稳定。如果您需要 xlsx 格式的文件,请从他们的网站下载,而不是通过 NuGet。 NPOI on GitHub

【讨论】:

    猜你喜欢
    • 2012-02-22
    • 2016-08-23
    • 2019-06-11
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多