就是怎么把读取到的Excel中的按本人想要的方法拆分?
本人已经做到把EXCEL的数据读取到了data grid view1 了,但是知道怎么拆分里面每行的数据。
拆分好之后还要把没用的数据忽略掉,最后插入数据库。
前面上头教本人做了怎么分拆一行数据的,但是读取到data grid view1怎么分拆?这个不懂。
private void button1_Click(object sender, EventArgs e)
{
string A = “30231132 0530164155 621700*********7845 建设银行 5980.00 -26.00 5954.00 000001000524 573059 有线销售点终端(P 消费”; //主要是要拆这样的数据
A = textBox1.Text;
A=A.Trim(); //删除头尾部的空格
//A = A.Replace(” “, ” “); //将空格换成一个空格,但被换的空格不能多与3个,否则无效
A = Regex.Replace(A.Trim(), “\s+”, ” “); //应用正则表达式 把“ ”内多个空格字符换成“ ”一个空格
string[] X = A.Split(” “); //把X定义为‘ ’空格,split()函数可以把指定的特殊字符截成多段
for (int a = 0; a < X.Length;a++ )
{
//MessageBox.Show(X[a]);
listBox1.Items.Add(X[a]);
}
return;
}
上面是要拆分其中的一条数据已经包括方法了
但是把Excel导入到data grid view1 的几十行数据怎么按那个方法拆,最后还要插入到数据库。
下面是本人的全部代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace WindowsFormsApplication41
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dt = new DataTable();
string connString = “server = (local);database = shoucao;user id = zxf;password = zxf123”;
SqlConnection conn;
private void Form1_Load(object sender, EventArgs e)
{
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string A = “30231132 0530164155 621700*********7845 建设银行 5980.00 -26.00 5954.00 000001000524 573059 有线销售点终端(P 消费”; //主要是要拆这样的数据
A = textBox1.Text;
A=A.Trim(); //删除头尾部的空格
//A = A.Replace(” “, ” “); //将空格换成一个空格,但被换的空格不能多与3个,否则无效
A = Regex.Replace(A.Trim(), “\s+”, ” “); //应用正则表达式 把“ ”内多个空格字符换成“ ”一个空格
string[] X = A.Split(” “); //把X定义为‘ ’空格,split()函数可以把指定的特殊字符截成多段
for (int a = 0; a < X.Length;a++ )
{
//MessageBox.Show(X[a]);
listBox1.Items.Add(X[a]);
}
return;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)//打开文件操作提示框
{
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
string fileName = fd.FileName;
bind(fileName);
}
}
private void bind(string fileName)
{
string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;” +
“Data Source=” + fileName + “;” +
“Extended Properties=”Excel 8.0; HDR=Yes; IMEX=1″”;
OleDbDataAdapter da = new OleDbDataAdapter(“select * from [sheet1$]”, strConn);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
dt = ds.Tables[0];
this.dataGridView1.DataSource = dt;
}
catch (Exception err)
{
MessageBox.Show(“操作失败!” + err.ToString());
}
}
}
}
下面是winform的图片
还有是要拆的EXCEL文件的数据
终端编号 交易日期时间 主账号 发卡行 交易金额 商户费用 结算金额 系统参考号 系统跟踪号 交易渠道 交易类型
30231132 0530164155 621700*********7845 建设银行 5980.00 -26.00 5954.00 000001000524 573059 有线销售点终端(P 消费
30231132 0530165149 621626*********8313 平安银行 0.00 0.00 0.00 000001000529 575973 有线销售点终端(P 余额查询
30231132 0530165400 621467*********6055 建设银行 0.00 0.00 0.00 000001000531 580118 有线销售点终端(P 余额查询
30231132 0530165527 621467*********6055 建设银行 1500.00 -9.45 1490.55 000001000532 584217 有线销售点终端(P 消费
30231132 0530165621 621626*********8313 平安银行 3900.00 -24.57 3875.43 000001000533 579998 有线销售点终端(P 消费
30231133 0530124525 621626*********3740 平安银行 5980.00 -26.00 5954.00 000001000646 421241 有线销售点终端(P 消费
30231133 0530135305 621700*********2133 建设银行 7180.00 -26.00 7154.00 000001000650 453092 有线销售点终端(P 消费
30231133 0530184852 439225******3576 招商银行深圳分行 5980.00 -26.00 5954.00 000001000651 671038 有线销售点终端(P 消费
30231137 0530191934 622575******3107 招商银行 5980.00 -26.00 5954.00 000001000726 691764 有线销售点终端(P 消费
30231137 0530192019 622575******3107 招商银行 5980.00 -26.00 5954.00 000001000727 691394 有线销售点终端(P 消费
30231137 0530192139 622575******3107 招商银行 5980.00 -26.00 5954.00 000001000728 699003 有线销售点终端(P 消费
30231137 0530192233 458123******7401 交通银行 5980.00 -26.00 5954.00 000001000729 697646 有线销售点终端(P 消费
30231138 0530171907 621485******2205 招商银行 5980.00 -26.00 5954.00 000002000796 597384 有线销售点终端(P 消费
30231139 0530154520 356868******2211 平安银行股份有限公司 5980.00 -26.00 5954.00 000002000905 535485 有线销售点终端(P 消费
30231142 0530170931 621700*********8056 建设银行 5980.00 -26.00 5954.00 000012000795 592112 有线销售点终端(P 消费
30231142 0530195234 621226*********9079 工商银行深圳分行 5980.00 -26.00 5954.00 000012000796 021257 有线销售点终端(P 消费
30231143 0530183720 625907******6495 中国银行 7680.00 -26.00 7654.00 000001000520 660916 有线销售点终端(P 消费
30231149 0530144900 439225******8307 招商银行深圳分行 6280.00 -26.00 6254.00 000002000426 488691 有线销售点终端(P 消费
30231149 0530150951 622202*********6769 工商银行深圳分行 5980.00 -26.00 5954.00 000002000427 507936 有线销售点终端(P 消费
30231152 0530094404 622208*********6237 工商银行深圳分行 5980.00 -26.00 5954.00 000003000848 311497 有线销售点终端(P 消费
30231152 0530141301 622848*********2170 农业银行 5980.00 -26.00 5954.00 000003000849 465070 有线销售点终端(P 消费
30231152 0530173003 621700*********4729 建设银行 4880.00 -26.00 4854.00 000003000850 611613 有线销售点终端(P 消费
30231154 0530194032 439226******0071 招商银行深圳分行 5980.00 -26.00 5954.00 000002000596 007593 有线销售点终端(P 消费
30231155 0530111603 622228******1579 浦东发展 1352.00 -8.52 1343.48 000002000767 367556 有线销售点终端(P 消费
30231155 0530181655 622575******2185 招商银行 500.00 -3.15 496.85 000002000768 643788 有线销售点终端(P 消费
30231158 0530111612 622700*********0027 建设银行 5980.00 -26.00 5954.00 000001000134 369918 有线销售点终端(P 消费
30231159 0530102018 622845*********4979 农业银行 5980.00 -26.00 5954.00 000001000517 336656 有线销售点终端(P 消费
30231159 0530111541 628288******6976 工商银行深圳分行 5980.00 -26.00 5954.00 000001000518 368926 有线销售点终端(P 消费
30231159 0530122211 621226*********4861 工商银行深圳分行 950.00 -5.99 944.01 000001000519 403967 有线销售点终端(P 消费
10
string[] splitArray = null;
try {
splitArray = Regex.Split(subjectString, @”\s+”, RegexOptions.Singleline);
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
5
本人以前帮同事做过一个工具,是把从 sap 里面导出的 wms 导入 excel。
本人刚传到本人的下载里面,估计要过会儿才能看到。
本人试了下,能用。
5
50
那么你可以
foreach datarow row in dt.rows
{
string str=(string)row[0];//简单点写,本人就不判定nullvalue了
把你分割的代码放这里,上面的str就是一行值,至于分割的结果你是用list<T> 存,还是怎样就看你本人选择了(当然你说你想丢一些列,也看你本人怎么选择)
}
20
http://bbs.csdn.net/topics/391975896?page=1#post-401293734
注意这是指桌面程序,例如wpf、winform程序中操作 excel。
10
2、单行拆分用 line.Split(new[] { “\t”,” ” }, StringSplitOptions.RemoveEmptyEntries)