当前位置: 首页 > wzjs >正文

撰写网站建设策划书范文选服务好的分销管理系统

撰写网站建设策划书范文,选服务好的分销管理系统,百色做网站,石家庄网络营销C#—csv文件格式操作实例【在winform表格中操作csv】 实例一 实例效果 当在winform界面中点击读取按钮时 将csv中的所有数据读取出来放置在datagridview控件,可以在datagridview控件中编辑数据,当点击保存按钮时 将datagridview控件中的所有数据存储在…

C#—csv文件格式操作实例【在winform表格中操作csv】

实例一

实例效果

当在winform界面中点击读取按钮时 将csv中的所有数据读取出来放置在datagridview控件,可以在datagridview控件中编辑数据,当点击保存按钮时 将datagridview控件中的所有数据存储在csv格式文件中。

第一步UI界面搭建

第二步封装一个csv文件格式的操作类

public class CSVAPI
{/// <summary>/// 保存/// </summary>/// <param name="date"></param>/// <param name="data"></param>/// <param name="result"></param>/// <param name="fileName"></param>public void SaveData(string date,string data, string result,string fileName){using (StreamWriter sw2 = new StreamWriter(fileName, true, Encoding.Default)){StringBuilder sb = new StringBuilder();sb.Append(date).Append(",").Append(data).Append(",").Append(result + "\n");sw2.Write(sb.ToString());}}/// <summary>/// 读取CSV/// </summary>/// <returns></returns>public string ReadData(string fileName){StreamReader sr = new StreamReader(fileName, Encoding.Default);string s = sr.ReadToEnd(); // 读取数据sr.Close();sr.Dispose();return s;}
}

第三步实现按钮事件

public partial class Form1 : Form
{public Form1(){InitializeComponent();}CSVAPI csv = new CSVAPI();string filename = "./data.csv";/// <summary>/// 保存/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){if (dataGridView1.Rows.Count>0){//  写入表头(将表头写死)FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write);StreamWriter sw = new StreamWriter(fs, Encoding.Default);StringBuilder sb = new StringBuilder(); // 定义可变字符串,保存存储的数据sb.Append("时间").Append(",").Append("姓名").Append(",").Append("事件");sw.WriteLine(sb);sw.Close();sw.Dispose();fs.Close();fs.Dispose();for (int i = 0; i < this.dataGridView1.RowCount-1; i++){csv.SaveData(this.dataGridView1.Rows[i].Cells[0].Value.ToString()+"", this.dataGridView1.Rows[i].Cells[1].Value.ToString() + "", this.dataGridView1.Rows[i].Cells[2].Value.ToString() + "", filename);}}}/// <summary>/// 读取/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){this.dataGridView1.Rows.Clear();if (!File.Exists(filename)){MessageBox.Show("文件不存在");return;}string[] strings = csv.ReadData(filename).Split('\n');for (int i = 1;i < strings.Length;i++){if (!string.IsNullOrEmpty(strings[i])){string[] vals = strings[i].Split(',');this.dataGridView1.Rows.Add(vals);}}}
}

效果展示


实例二

实例效果

当在winform界面中点击读取按钮时弹出文件选择框,用户选择指定的csv文件然后将csv中的所有数据读取出来放置在datagridview控件,可以在datagridview控件中编辑数据,当点击保存按钮时 将datagridview控件中的所有数据存储在用户选择的csv格式文件路径中。

完整代码

public partial class Form1 : Form
{public Form1(){InitializeComponent();}OpenFileDialog ofd = new OpenFileDialog();//读取private void button1_Click(object sender, EventArgs e){//字符串-->dataTable--->dataSourceif(ofd.ShowDialog()==DialogResult.OK){FileStream fs = new FileStream(ofd.FileName, FileMode.Open);StreamReader sr = new StreamReader(fs,Encoding.Default);//读取文件流数据string data = "";//读出每一行的数据 "name ,age sex"string[] lines;// 数据的数组bool isHead = true; // 是否是表头DataTable dt = new DataTable();// 为了给datagridview设置数据源的类型while ((data=sr.ReadLine())!=null)  //先赋值给data 再判断data是否为空 ,不为空时候 一直读取{lines= data.Split(','); //把每一行的数据使用逗号分隔 [name ,age ,sex]if(isHead) //是不是表头[name ,age ,sex] {//遍历表头数组 给每一列添加标题for(int i = 0; i < lines.Length; i++){dt.Columns.Add(lines[i]); //设置dt的列的数据源}isHead = false;}else //不是表头数据,每一行表格添加数据{DataRow d1 = dt.NewRow();// 指定datatable创建行for (int i = 0; i < lines.Length; i++){d1[i] = lines[i];// 单元格设置值}dt.Rows.Add(d1);}}//绑定数据源if (dt.Rows.Count==0) //如果没行的 证明没数据{MessageBox.Show("没有数据","温馨提示");}else{//证明有数据 展示到控件上//dataGridView1.DataSource = dt;// dataGridView1.ColumnCount 列的个数dataGridView1.ColumnCount = dt.Columns.Count;//设置表头for (int i = 0; i < dt.Columns.Count; i++){// dataGridView1.Columns[i].HeaderText  表格控件的每一列的标题dataGridView1.Columns[i].HeaderText = dt.Columns[i].ColumnName;}//设置行数据for (int i = 0; i < dt.Rows.Count; i++){//dataGridView1.Rows. 设置表格控件的所有的行dataGridView1.Rows.Add(dt.Rows[i].ItemArray);}}sr.Close();fs.Close();}}// 保存private void button2_Click(object sender, EventArgs e){//dataSource-->dataTable--->stringDataTable dt  = new DataTable(); //创建dataTable类型//设置dt表头//遍历控件列的个数,根据控件的列的个数设置dt列for (int i = 0;i < dataGridView1.Columns.Count;i++){dt.Columns.Add(dataGridView1.Columns[i].HeaderText); //把控件列标题添加到dt列里面}//设置dt的行 for (int i = 0; i < dataGridView1.Rows.Count; i++) //遍历控件几行{DataRow row = dt.NewRow(); //创建行for (int j = 0; j < dataGridView1.Columns.Count; j++) //遍历控件几列{//dataGridView1[0,0] 根据几行几列取出表格数据row[j] = dataGridView1[j, i].Value;}dt.Rows.Add(row);}//把dt数据转成字符串进行写入SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "csv文件(*.csv)|.csv";if(sfd.ShowDialog()==DialogResult.OK){//开始写入FileStream fs = new FileStream(sfd.FileName, FileMode.Create);StreamWriter sw = new StreamWriter(fs,Encoding.Default);string data = "";// 写入的字符串//表头转成字符串for (int i = 0; i < dt.Columns.Count; i++){data += dt.Columns[i].ColumnName;// 把dt列标题取出拼接if(i <dt.Columns.Count-1){data += ","; // 列之间使用逗号隔开}}sw.WriteLine(data); //写入表头//写入行数据data = null;//防止表头数据重复写入for (int i = 0; i < dt.Rows.Count-1; i++){for (int j = 0; j <dt.Columns.Count; j++){data += dt.Rows[i][j]; //几行几列数据拼接dataif(j<dt.Columns.Count-1)//不是最后一列{data += ",";}}sw.WriteLine(data);//写入表数据data=null;}sw.Close();fs.Close();}}
}

 1 datagridview 控件的常用属性

  •    dataGridView1.Columns  表格控件的所有列
  •    dataGridView1.Columns .Count 表格控件的所有列的个数
  •    dataGridView1.Rows  表格控件的所有行
  •    dataGridView1[0,0] 根据几行几列取出表格数据
  •    dataGridView1.Columns[i].HeaderTex  表格控件的列的文本内容

2 dataTable常用的属性和方法

  •     DataTable dt  = new DataTable(); 创建dataTable类型
  •     DataRow row = dt.NewRow(); 创建一行
  •     dt.Rows.Add(row);  向dataTable添加一行
  •     dt.Columns.Add(); 向dataTable添加一列
  •     dt.Columns  datatable所有的列
  •     dt.Rows   datatable所有的行
  •     dt.Columns[i].ColumnName;列标题


文章转载自:

http://pg6cAU3e.yjmns.cn
http://Lp0J44d4.yjmns.cn
http://t42rerLb.yjmns.cn
http://rpWdfJ9v.yjmns.cn
http://NI0JsV7e.yjmns.cn
http://KIFTmFJj.yjmns.cn
http://KiF7aRFV.yjmns.cn
http://PdOPALaI.yjmns.cn
http://WZDuE0a2.yjmns.cn
http://nwM2ixT8.yjmns.cn
http://tRuArsyZ.yjmns.cn
http://GH74UPJi.yjmns.cn
http://GbAyTIa5.yjmns.cn
http://4ED4ft0d.yjmns.cn
http://emKIqOm8.yjmns.cn
http://qJMwN6DW.yjmns.cn
http://OBs73Qvq.yjmns.cn
http://N357evji.yjmns.cn
http://OpSYOAIZ.yjmns.cn
http://de4T30wc.yjmns.cn
http://TWOGAo7M.yjmns.cn
http://MOrDjc8X.yjmns.cn
http://WWzVVdSy.yjmns.cn
http://Ua3e3FY1.yjmns.cn
http://zumEmems.yjmns.cn
http://y6sKIL3R.yjmns.cn
http://GyihK6Y0.yjmns.cn
http://vGVuLbln.yjmns.cn
http://u3vFBh61.yjmns.cn
http://BIsJwWbp.yjmns.cn
http://www.dtcms.com/wzjs/719415.html

相关文章:

  • 门户手机版网站网站建设一般步骤
  • 可视化网站开发工具有哪些运营推广的工作内容
  • 苏州市网站为某公司或企业做的门户网站
  • 电子商务网站建设与管理课后题答案6网页设计与网站建设实验报告
  • 上海 宝安网站建设 网络服务360建筑网官方网站
  • 昆山专业做网站wordpress 内网 插件
  • 海南网站建设多少钱贵阳讯玛网站建设
  • 网站源码商城建设做app必须有网站吗
  • 做设计一般在那个网站找图cvv钓鱼网站怎么做
  • 冷门行业做网站的优势怀柔谁会网站开发
  • 网站制作的评价指标免费响应式企业网站源码
  • 做博客网站什么空间好关键对话
  • 陕西网站开发公司哪家好wordpress视频播放器
  • 云南网站制作一条龙网站开发职责与要求
  • 菏泽营销网站建设公司wordpress游戏模板
  • 做好的网站怎么发布网站怎样做漂浮
  • 江苏建设局网站wordpress修改地址后
  • 大型网站开发框架移动前端框架湖北民族建设集团网站首页
  • 东莞网站建设怎么收费成都网站搜索排名优化哪家好
  • 淘宝做详情页代码网站自己怎么申请网站空间
  • 重庆建站免费模板php网站前后台源代码
  • 郑州快速建站价格网站刷链接怎么做
  • 建网站一般用什么工具连云港高端网站建设
  • 网站建设SEO优化哪家好如何开发软件程序
  • 十堰百度网站建设怎么提高网站加载速度慢
  • 微软网站开发工具有哪些企业咨询是什么工作
  • 网站开发属于什么软件视频直播网站开发运营步骤
  • 网站里的横幅广告怎么做网站建设完成
  • 网站怎么做投票树莓派可以做网站空间吗
  • seo网站关键词优化app大全软件下载