C# 动态(不定)类型和不定参数数量,使用param写入CSV文档的最简单方法,提供excel(或记事本)阅读支持格式
在开发一个项目,使用C#写入CSV文件时,虽并未遇到太多阻碍,但是很多小伙伴估计和我有过同样的想法。简单的写入CSV,固定参数数量就好了很简单写完。但是如果遇到你得到的数据参数数量和参数类型未知或者动态变化怎么办,似乎好像不能固定在某几个形参中。因为我总想着每次造轮子(或写脚本)都想要做成自己的dll封装起来,等到第二次用的时候就能直接使用,不用再造一次车轮。
减少重复工作是程序员提高效率的有效办法之一,而且终身受用,哪怕轮子不合适也是在源代码上增加接口或方法来拓展,哪天就成了“万用”轮子呢。
废话结束,直入主题。
1、形参使用了 params 搭配 object ,动态参数输入,也就是不知参数的数量和各个参数的类型,进行输入。第一次琢磨出的用法,并不知在意其中的“风险”。
2、string temp = head + i.ToString() + ",4" + tail; 这句是占用符和格式字符串的使用,其实就是熟悉的 Console.WriteLine(“工号{0}, 姓名{1}, 年龄{2}”, n1,n2,n3);其中引号部分的格式。
3、if(i == array.Length-1) 其实是为了增加分隔符[,],旨在为了在excel中能正常分隔显示,此处你不需要可忽略。
4、补充了需要文件操作的代码,可以参考一下。最喜欢简单实用的代码,比长篇大论是不是大家更有耐心看完。
5、WriteCSV_Array()的使用,我是写到了一个事件当中,实际测试我就放到按钮中,这两段代码已经实现了整个CSV文件的写入,当然是关闭代码,或程序终止(暂停)后仍有保存。效果就是写入CSV文件,事件每触发一次,就写一行。参数类型:整数、double、浮点、字符串都能正常写入,参数数量当然是任意的。
6、最后希望看到的朋友多多支持,评论一下,有不足的我加以修改,有用的是对我的勉励,谢谢大家!
public void WriteCSV_Array(params object[] array)
{
string writeString = "";
string head = "{";
string tail = "}";
for (int i = ; i < array.Count();i++)
{
string temp = head + i.ToString() + ",4" + tail;//效果:{0,4}
if(i == array.Length-)//如果是最后一个元素,不加分隔符[,]
{
writeString = writeString + temp;
}
else //不是最尾元素,则加分隔符[,],分隔符作用是在:用excel打开时,分隔单元显示
{
writeString = writeString + temp + ",";//效果:{0,4},{1,4},...
}
}
if (File.Exists(@"E:\Test1.csv"))
{
sw.WriteLine(writeString, array);// new Object[] {array});
sw.Flush();
}
else
{ //如果无该文件,重新初始化一次
InitCSVControl();
}
}
public void InitCSVControl(string filePath = @"E:\",string fileName = @"TestCSVdll.csv",
FileMode mode = FileMode.Create,
FileAccess access = FileAccess.Write)
{
string pathName = filePath + fileName;
fs = new FileStream(pathName, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs);
}
private void button1_Click(object sender, EventArgs e)
{
object[] array;
array = new object[] { 0.0011, 0.0022, 0.0033, 0.0044, 0.0055 };
csv_controller.WriteCSV_Array(array);
}
C# 动态(不定)类型和不定参数数量,使用param写入CSV文档的最简单方法,提供excel(或记事本)阅读支持格式的更多相关文章
- Elasticsearch 关键字:索引,类型,字段,索引状态,mapping,文档
1. 索引(_index)索引:说的就是数据库的名字.我这个说法是对应到咱经常使用的数据库. 结合es的插件 head 来看. 可以看到,我这个地方,就有这么几个索引,索引就是数据库,后面是这个数据库 ...
- 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器
置顶2017年11月06日 14:41:04 阅读数:2311 这几天,任务中有一个难点是把一个打印页面自动给生成PDF文档,并且上传至服务器,然而公司框架只有手动上传文档,打印时可以保存为PDF在本 ...
- silverlight 生产图表(动态图表类型,Y轴数量) .xaml.cs文件
silverlight 页面后台方法 .xaml.cs文件 public void CreateChart(Grid oGrid, ObservableCollection<ListItem&g ...
- Apache DolphinScheduler 使用文档(6/8):任务节点类型与任务参数设置
本文章经授权转载,原文链接: https://blog.csdn.net/MiaoSO/article/details/104770720 目录 6. 任务节点类型和参数设置 6.1 Shell节点 ...
- 第10章 文档对象模型DOM 10.2 Document类型
Document 类型 JavaScript 通过 Document 类型表示文档.在浏览器中, document 对象是 HTMLDocument (继承自 Document 类型)的一个实例,表示 ...
- 深入理解DOM节点类型第七篇——文档节点DOCUMENT
× 目录 [1]特征 [2]快捷访问 [3]文档写入 前面的话 文档节点document,隶属于表示浏览器的window对象,它表示网页页面,又被称为根节点.本文将详细介绍文档节点document的内 ...
- ElasticSearch 5学习(8)——分布式文档存储(wait_for_active_shards新参数分析)
学完ES分布式集群的工作原理以及一些基本的将数据放入索引然后检索它们的所有方法,我们可以继续学习在分布式系统中,每个分片的文档是被如何索引和查询的. 路由 首先,我们需要明白,文档和分片之间是如何匹配 ...
- 利用Java动态生成 PDF 文档
利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...
- Indri中的动态文档索引技术
Indri中的动态文档索引技术 戴维 译 摘要: Indri 动态文档索引的实现技术,支持在更新索引的同时处理用户在线查询请求. 文本搜索引擎曾被设计为针对固定的文档集合进行查询,对不少应用来说,这种 ...
随机推荐
- 【LeetCode】17-电话号码的字母组合
题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出: ...
- WEB应用中普通java代码如何读取资源文件
首先: 资源文件分两种:后缀.xml文件和.properties文件 .xml文件:当数据之间有联系时用.xml .properties文件:当数据之间没有联系时用.properties 正题: ...
- Python3-编码问题-解决为何我的python打印总是出现乱码??
#python3 编码问题: ############举个例子############################### import sys print(sys.getdefaultencodi ...
- 腾讯工作近十年大佬:不是我打击你!你可能真的不会写Java
文章核心 其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Ja ...
- Unity3D_10_文件夹目录架构
一:几个特殊文件夹介绍 1.Editor Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以.比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论 ...
- Unity3D_07_日志、文本打印
1.Debug.Log(“hello”); 2.打开控制台查看日志:ctrl+shift+c 3.输出一个位置的坐标(需要转换成字符串.ToString()) Vector3 worldPositio ...
- Winforn中怎样在窗体中打开另一个窗体
场景 在Winform的窗体A中打开另一个窗体B. 实现 //打开新的窗体 CurveCompare cc = new CurveCompare(); cc.Show(); 效果 以上代码的实现参照: ...
- 学习数据库SQL语句2
2018年11月15日 下午 —————————————————————————————————————————————————————————————————————————————————— 1 ...
- PHPCon 2019 第七届 PHP 开发者大会总结
往届回顾-2018:PHPCon 2018链接: https://pan.baidu.com/s/17nfrfqk9K4vwKPAsjBVW7A——提取码:rjbr 随着PHP7的诞生,兼顾了高性能和 ...
- Flink 编程接口
欢迎来 kk大数据,今天分享的是 Flink 提供了哪些编程接口可以给我们开发. 一.数据集类型 现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最 ...