C# 如何连续写入excel文件?

C# 如何连续写入excel文件?,c#,excel,createfile,C#,Excel,Createfile,我想创建并连续写入Excel文件。我必须在下面编写代码,但我想添加我不断获得的所有数据 代码: 在这段代码中,当启动应用程序时,它总是说您想替换它,并且当程序获得数据时,它总是关闭应用程序 这是我想要的功能:我想要像这里一样附加文件 StreamWriter fileWriter = new StreamWriter("test.txt", true); fileWriter.WriteLine(jointHead.Position.X); fileWrit

我想创建并连续写入Excel文件。我必须在下面编写代码,但我想添加我不断获得的所有数据

代码:

在这段代码中,当启动应用程序时,它总是说您想替换它,并且当程序获得数据时,它总是关闭应用程序

这是我想要的功能:我想要像这里一样附加文件

    StreamWriter fileWriter = new StreamWriter("test.txt", true);
    fileWriter.WriteLine(jointHead.Position.X);       
    fileWriter.Close();
这类问题的解决办法是什么?
谢谢…

要附加文件,请使用以下代码插入:

using(StreamWriter fileWriter = new StreamWriter(@"c:\test.txt", true))
{
    fileWriter.WriteLine("test");
}
否则,您将不会向文件写入任何内容,因为您在文件写入之前将其关闭。这将以正确的方式追加文件并关闭流


是指向linq to sql教程的链接。这可能会帮助您找到一个保存和加载数据的解决方案,Excel文件是二进制文件,因此连续写入Excel文件实际上没有意义


我能建议的最佳解决方案是创建一个CSV文件,然后继续写入该文件。与Excel文件不同,CSV文件可以被视为简单的文本流,可以通过Excel以本机方式打开。

顺便说一句-我知道您的MessageBox.ShowException。。。用于调试目的。确保不要在最终的应用程序中保留这一点,而是考虑一些附加了“重要性”枚举的日志记录功能

除此之外,我还想问,为什么使用excel文件而不是其他可扩展存储介质。毕竟,您可以保存到数据库中,在需要时查询它,并显示一个包含过滤内容的excel文件。这样,您就不会冒超过excel行最大值的风险,这在错误处理中是不符合的,而在常规的releaseObject try{}/catch{}中除外


<>我的苏格兰腰带和括号的态度:

我会考虑写一个文本文件,格式与EXCEL兼容,如CSV,并连续添加到该文件中。您可能会发现它更快更简单。顺便说一句-我知道您的MessageBox.ShowException。。。用于调试目的。确保不要在最终的应用程序中保留这一点,而是考虑一些附加了“重要性”枚举的日志记录功能。除此之外,我还想问,为什么使用excel文件而不是其他可扩展存储介质。毕竟,您可以查询数据库,并在需要时显示包含内容的excel文件。作为答案添加为wellBecause,我有60列和大约400行数据…这就是我想使用excel的原因。我不想创建表、行和列……首先我尝试了txt文件。它完美地附加了它。但是,如果你有太多的数据,它看起来很混乱。很难在它们之间选择一些数据。这就是我想使用excel的原因。它已经有了列和行。我不需要创建表。你对此有什么解决办法吗?萨米特-我仍然不同意你的方法-对不起。但是,我的替代解决方案是将数据保存在内存缓存中,或者最好保存到数据库中,然后通过listview将其输出到表单中。我很感激您希望使用基于excel的解决方案,但根据我的经验,我不建议您将所有内容都提升到超出您最初预期的程度,并且考虑到您直接编码到实现,而不是接口,如果“需求”上升,这对重构来说不是个好兆头。我不想让保存一些数据变得更困难。我的意思是我不想使用db。解决方案应该是离线的…根据这个目标,我再次寻找你的答案。我有60列和大约400行的数据…这就是为什么我想使用excel。我不想创建表格…你有什么解决方案吗?我想展示这个想法,我在开始时使用了一些不同的东西。我有60列和大约400行数据。这就是我不想使用文本文件的原因。你有行和列的解决方案吗?就像前面说的。我可能会使用一个数据库表并将其保存在那里。如果需要在excel表中显示更改,那么您可以从数据库中读取并在excel文档中显示。您能给我一些链接或数据库表的示例代码吗?到目前为止,我从未对数据库表做过任何事情。此外,它不是excel中显示的要求。这只是我的想法,在表格中显示它。因为数据太多了。顺便说一下,我不是从数据库中获取数据的,比如说,这些是鼠标和其他设备的位置。最好不要使用db。如果您有,解决方案应该是脱机的?没有关系,如果您的解决方案是脱机的本地数据库或联机的,您可以使用数据库。
using(StreamWriter fileWriter = new StreamWriter(@"c:\test.txt", true))
{
    fileWriter.WriteLine("test");
}