实时保存数据到保存excel文档防止断电丢失

年轻的程序员小唐 2020-06-19 06:50:53
拟实现功能:测试完一组数据就保存到excel中去,就添加一行新的数据。
现在的功能:测试完一组数据后就添加一行新的excel中去,但是没保存,直到程序异常中断或者测试完成后才保存excel

为什么要这么做,为了防止电脑死机或者断电导致所测得的数据全部丢失。

请问这个该怎么做?
...全文
2475 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
丢到csv文件里,csv比excel好操作(提csv是因为至少比nosql,sqllite这类嵌入式文本数据库让你好理解点) 当然,如果你要觉着csv不好操作,那么直接用log4net,nlog这类当日志写也行。 log4net怎么弄博客园满地都是,我们就不贴了。 如果用log4net,前面那些基本配置俺们就不说了,看博客园那些文章。 1.你只是需要修改log4net配置文件,让他按你需要的格式写 2.代码只需要写log.info("我测试了一组数据,1,2,3")
我试用了csv,然后每写一条数据都是

        StreamWriter sw;
        private void button1_Click(object sender, EventArgs e)
        {
            sw = new StreamWriter(newPath + filename, true);
            sw.WriteLine(textBox1.Text);
            sw.Close();
       }
这样做可以满足我的测一条就写入并保存的需求。弄成可以被excel操作的表格数据处理会比较方便一点所以不会去考虑日志类型。操作excel是比csv复杂好多啊。 我可以换成csv文件来保存,谢谢你!
github_36000833 2020-06-20
  • 打赏
  • 举报
回复
有这么一个“工具定律”,英文是: When all you have is a Hammer, everything looks like a Nail. 中文是:当你所有的工具只是一个锤子时,你会把所有的问题看作钉子。 对开发者来说,避免进入锤子误区,就要掌握不只一种工具,就要分析应用不同工具解决目标问题的利弊。 对你来说,目标问题是保存数据应付断电事故。Excel文件是不是好的载体,是不是好的工具,你自已就要有使用它的辩解理由。 可以问自己,是否可以用普通文本文件?是否可以用csv文件?是否可以传入数据库?在断电数据保护方面,Excel文件和其他方案相比,有什么优缺点?
  • 打赏
  • 举报
回复
引用 2 楼 以专业开发人员为伍 的回复:
n的程序是怎样“保存i”的?你又是怎样测试“没保存”的?
我这个测试过程是测试一组数据,这组数据里面少则几个多则几千个,比如这组数据里有1,2,3,4,5共五条数据要测试,可能在测到3的时候死机了或者怎么样,那么我希望已经测过的1、2两条数据能保存下来,不至于全部丢失。 我现在做到的是每测一条数据就写入到excel里去,最后此次测试完成之后(不管是否完整完成,不管是否有异常(异常会被捕获)),保存整个excel文件。 现在就是如果突然断电了,或者程序被强制退出,强制关闭,那我还是没有把excel文件保存下来,前面写入到excel的文件的数据还是会丢失掉。 我想要的效果应该是,在开始测试一组数据时,新建一个excel文件,然后在这次测试中每测试一条数据,就写入并保存到这个excel文件中去,这样子即使突然断电死机了也能保存一部分数据下来
  • 打赏
  • 举报
回复
n的程序是怎样“保存i”的?你又是怎样测试“没保存”的?
  • 打赏
  • 举报
回复
谢谢各位的帮助!我也把用excel来做的方法给琢磨出来了。原来只要用一个Workbook.Save()就行,我之前一直在琢磨要关闭文件流,然后再打开文件流再关闭,如此循环。结果这个excel文件流我关闭掉之后就不会打开了。。。 感谢各位的指点!!!
wanghui0380 2020-06-19
  • 打赏
  • 举报
回复
丢到csv文件里,csv比excel好操作(提csv是因为至少比nosql,sqllite这类嵌入式文本数据库让你好理解点) 当然,如果你要觉着csv不好操作,那么直接用log4net,nlog这类当日志写也行。 log4net怎么弄博客园满地都是,我们就不贴了。 如果用log4net,前面那些基本配置俺们就不说了,看博客园那些文章。 1.你只是需要修改log4net配置文件,让他按你需要的格式写 2.代码只需要写log.info("我测试了一组数据,1,2,3")

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧