dataview将excel表格的数据导出成txt文件
有时候需要处理大量的数据,且这些数据又存在于excel表格内,在平时的时候,我是非常喜欢这样的数据的,因为只要是excel表格内的数据,处理起来的方法就很方便。也可能我平时遇见的数据总是以一种杂乱无章的状态呈现出来,因此只要遇见存在于某个数据库内的数据,就满心地喜欢,瞬间就有很有条理的感觉,如下:如果要处理这么几堆数据,单凭一个excel数据操作用的不怎么地的程序员来说,要想从里面获取简单直观的数据,还是不太能一下子就弄出来的。

因此,只要是天天写程序的人,就会想各种满足自己懒惰心理的办法,来发挥计算机处理数据的巨大优势的,在这里用一个简单的winform,只需要拖入两个dataview控件,就能看见需要的数据,然后导出相应的类型

其实当把这个界面做完以后,我发现我的工作实在是多余,按照别人的要求,这里的需求只是按照下面的gridview报出机票类型分别为ET等的集中PNR就可以了,不过既然都画上了,再去掉不是就浪费了去掉的时间了么,于是简单的代码就像下面这样了。
//一共是两个按钮的单击事件,第一个是读取xls文件,下面的小代码添加了很多注释
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格
ofd.Filter = "表格|*.xls";//打开文件对话框筛选器
string strPath;//文件完整的路径名
if (ofd.ShowDialog() == DialogResult.OK)
{
try
{
strPath = ofd.FileName;
string strCon = "provider=microsoft.jet.oledb.4.0;data source=" + strPath + ";extended properties=excel 8.0";
//关键是红色区域
OleDbConnection Con = new OleDbConnection(strCon);//建立连接 //绑定订单信息
string strSql = "select * from[Sheet1$]";//表名的写法也应注意不同,对应的excel表为sheet1,在这里要在其后加美元符号$,
并用中括号
OleDbCommand Cmd = new OleDbCommand(strSql, Con);//建立要执行的命令
OleDbDataAdapter da = new OleDbDataAdapter(Cmd);//建立数据适配器
DataSet ds = new DataSet();//新建数据集
da.Fill(ds, "Orders");//把数据适配器中的数据读到数据集中的一个表中(此处表名为Orders,可以任取表名)
//指定datagridview1的数据源为数据集ds的第一张表(也就是shyman表),也可以写ds.Table["Orders"]
dataGridView1.DataSource = ds.Tables[];//数据源的绑定 //绑定订单明细信息
string strSql1 = "select * from[Sheet2$]";
OleDbCommand Cmd1 = new OleDbCommand(strSql1, Con);//建立要执行的命令
OleDbDataAdapter da1 = new OleDbDataAdapter(Cmd1);//建立数据适配器
DataSet ds1 = new DataSet();//新建数据集
da1.Fill(ds1, "Details");//把数据适配器中的数据读到数据集中的一个表中(此处表名为Orders,可以任取表名)
dataGridView2.DataSource = ds1.Tables[];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);//捕捉异常
}
}
}
//这个按钮的单击事件是根据输入到类型框中的字符串获取当前列或者行的PNR之后导出到txt文件中。
private void ExportPNR_Click(object sender, EventArgs e)
{
string fileName = @"d:\"+Type.Text+".txt";
var PNRList = new List<string>(); //生成一个big endian Unicode编码格式的文本文件 StreamWriter sw = new StreamWriter(fileName, false, Encoding.GetEncoding("GB2312"));
//你可以试试其他编码,比如Encoding.GetEncoding("GB2312")或UTF8
sw.WriteLine();
sw.WriteLine("导出的PNR类型:"+Type.Text);
sw.WriteLine();
for (int i = ; i < ; i++)
{
//var PNR = "";
//sw.WriteLine(dataGridView2.Rows[i].Cells[1].Value.ToString());
//for (int j = 0; j < dataGridView2.Rows[i].Cells.Count-1; j++)
//{
// PNR += dataGridView2.Rows[i].Cells[j].Value.ToString() + " ";
//}
////写入订单记录
//sw.WriteLine(PNR);
//sw.WriteLine("订单明细---------------开始");
////写入订单详细记录
// for (int m = 0; m < dataGridView1.Rows.Count - 1; m++)
// if (dataGridView1.Rows[m].Cells[0].Value.ToString().Trim() ==
dataGridView2.Rows[i].Cells[1].Value.ToString().Trim())
// {
// var PNR_Details = "";
// for (int n = 0; n < dataGridView1.Rows[m].Cells.Count - 1; n++)
// {
// PNR_Details += dataGridView1.Rows[m].Cells[n].Value.ToString()+" ";
// }
// sw.WriteLine(PNR_Details);
// } // sw.WriteLine("订单明细---------------结束");
//代码注释的部分,是另外一种的txt文件中的显示方式。当然不是以某个类型的名字命名的txt文件。这一段代码就同时用到了两个gridview,一个是订单表,
一个是订单明细表,两者之间是一对多的关系,本来以为要导出两个表的关系来,后来发现并不需要,于是简单的导出一个表的按某个字段简单查询的某些字段而已。
for (int j = ; j < dataGridView1.Rows[i].Cells.Count-; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value != null)
{
var PNR = dataGridView1.Rows[i].Cells[].Value.ToString();
if (PNR.Contains(Type.Text))
PNRList.Add(dataGridView1.Rows[i].Cells[].Value.ToString());
}
}
}
foreach (var item in PNRList.Distinct())
{
sw.WriteLine(" " + item);
} sw.Write("\r\n");
sw.Close();
MessageBox.Show("导出数据成功,PNR位于d:\a.txt文件下!");
}
dataview将excel表格的数据导出成txt文件的更多相关文章
- 安卓端数据导出成txt文件
toExport() { if (this.dataList == false) { this.$createDialog({ type: "alert", content: &q ...
- 把mysql的数据导出成txt
把mysql的数据导出成txt select a from b into outfile '/sqlfile/a.txt'; my.ini里需要设置secure_file_priv = d:/sqlf ...
- php 读取网页源码 , 导出成txt文件, 读取xls,读取文件夹下的所有文件的文件名
<?php // 读取网页源码$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLO ...
- es实战之数据导出成csv文件
从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...
- 数据库数据导出成XML文件
在数据库中,怎样把库中的数据导出XML文件, sql语句如下: SELECT * FROM 表名 FOR XML AUTO, ELEMENTS
- Excel文档数据转成Plist文件
有时候我们需要导入大量数据到App中静态数据,但数据又是存在Excel中,怎么办? 第一,复制数据粘贴到一个.txt文本文档中 第二,就是撸代码了 比如,我需要导入的数据表有2列字段,name和bar ...
- vue.js纯前端处理如何将后台返回来的csv数据导出成csv文件
需要实现一个下载csv文件的功能,但后台没有对这个下载文件进行处理,而是将csv数据传给前台而已,需要前台做一下处理. 这是按钮的代码: <a> <el-button size=&q ...
- plsql 把数据导出成为 .sql文件,记住了
今天上午,同事 提醒我.可以直接把数据导出成 .sql 文件,类似于 反编译.见下图
- man手册导出成txt,pdf,html的一些小技巧
经常man一些shell命令,有时候有想导出来编辑或注释一下,所以要导出.方法有很多种,根据自己的实际需要觉得比较实用的记录下分享一下. 1.导出成txt man –t bash |col –b &g ...
随机推荐
- iOS中的上传、下载流程心得
访问相册 1. 判断资源库是否有效 2. 创建imagePickerController 设置代理 弹出视图控制器 3. 实现协议方法 > iOS10 访问系统相册需要在info.plis ...
- Eclipse创建Maven时提示错误could not resolve archetype
今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured ...
- ios 按钮点击无反应
今天项目遇到有个UIButton无法点击,弄了半天,总结出以下几个结论 1.如果一个UIButton的frame超出父视图的frame,UIButton还是可以显现的,但响应不了点击事件了,当开发中, ...
- Oracle 去除两边空格
sql 去掉两头空格sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格.合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrN ...
- spark 运行问题记录
在CDH5.5.2上运行spark1.5的程序,运行起来就直接shutdown,并报出如下的异常: INFO YarnClientSchedulerBackend: SchedulerBackend ...
- 【Leetcode-Mysql】Trips and Users
思路不总结了,看过题目自己尝试过之后,看下方代码应该能理解的 SELECT Request_at AS DAY, round( sum( CASE WHEN STATUS = 'completed' ...
- zookeeper学习(一)安装、配置、运行
说明:zookeeper完全可以standalone,也可以伪集群形式,当然生产中都是集群形式.另外,也可以在windows下运行. 如果只是研究用,完全可以在windows下使用standalone ...
- poj3009
#include <stdio.h> int H,L; int qx,qy,zx,zy; int map[21][21]; int ax[4]={-1,0,1,0}; int ay[4]= ...
- Servlet下载文件和http响应
下载文件等: 1.得到公共的内容ServletContext sc = this.getServletContext(); 2.在链接名字后面加个? 一个参数?参数1=值 两个参数?参数1=值& ...
- java学习教程
java依然是目前比较流行的语言.虽然,本人是C#开发者,但是由于公司决定使用java开发,所以只好开始学习java.在学校时候只是接触过没有过深的学习过,而且参加工作后基本也一直在搞C#.好在,现在 ...