GlacialList数据导入导出(txt与CSV)

 用到的库文件

System.IO;

 

项目

录音系统V3.0

 

说明

导出格式为txt或CSV,好处再于不用装office,还可以正常导出数据.

 

不足

txt文档导入还没实现;

CSV格式有要求.否则导入不成功;

 

导入代码段(只能导入CSV第一表,第一行数据不导入,是标题.第一列,第二行开如导入,不能有多余的数据.介意做项目时,加个模板,减少出错概率)

        private void btnImportAvoidCode_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialogCSV = new OpenFileDialog();

            openFileDialogCSV.InitialDirectory = Application.ExecutablePath.ToString();
            openFileDialogCSV.Filter = "EXCEL表格(*.csv)|*.csv";
            openFileDialogCSV.FilterIndex = 1;
            openFileDialogCSV.RestoreDirectory = true;

            if (openFileDialogCSV.ShowDialog() == DialogResult.OK)
            {
                string txtFileToImport = openFileDialogCSV.FileName.ToString();
                System.IO.FileInfo fi = new System.IO.FileInfo(txtFileToImport);
                string dirCSV = fi.DirectoryName.ToString();
                string FileNevCSV = fi.Name.ToString();

                DataTable dt = new DataTable();

                //导入数据
                try
                {
                    string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + dirCSV.Trim() + ";Extensions=asc,csv,tab,txt;Persist Security Info=False";
                    string sql_select;
                    OdbcConnection conn;
                    conn = new OdbcConnection(strConnString.Trim());
                    conn.Open();

                    sql_select = "select * from [" + FileNevCSV.Trim() + "]";

                    OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);

                    obj_oledb_da.Fill(dt);

                    conn.Close();
                }
                catch //(Exception ex)
                {
                    FrmMsg frmMsgg = new FrmMsg("取数据失败!请参照录音系统目录下导入模板格式进行导入", 2, FrmMsg.MsgBtn.OK);
                    frmMsgg.ShowDialog();
                    frmMsgg.Dispose();
                    return;
                }

                //加载数据

                try
                {

 

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        bool isexist = false;
                        for (int j = 0; j < this.lvAvoidList.Items.Count; j++)
                        {
                            if (lvAvoidList.Items[j].SubItems[0].Text.ToString() == dt.Rows[i][0].ToString())
                            {
                                isexist = true;
                                break;
                            }
                        }
                        if (isexist == false)
                        {

                            ListViewItem lvItem = new ListViewItem();
                            lvItem.Tag = Convert.ToInt32(dt.Rows[i][0]).ToString().Trim();
                            lvItem.Text = Convert.ToInt32(dt.Rows[i][0]).ToString().Trim();

                            ListViewItem.ListViewSubItem lvSItemValid = new ListViewItem.ListViewSubItem();
                            int validTag = 0;
                            string strValid = "";
                            switch (dt.Rows[i][1].ToString())
                            {
                                case "1":
                                    strValid = "启用";
                                    validTag = 1;
                                    break;
                                case "启用":
                                    strValid = "启用";
                                    validTag = 1;
                                    break;
                                case "0":
                                    strValid = "停用";
                                    validTag = 0;
                                    break;
                                case "停用":
                                    strValid = "停用";
                                    validTag = 0;
                                    break;
                                default:
                                    strValid = "启用";
                                    validTag = 1;
                                    break;
                            }
                            lvSItemValid.Tag = validTag;
                            lvSItemValid.Text = strValid;
                            lvItem.SubItems.Add(lvSItemValid);
                            lvAvoidList.Items.Add(lvItem);
                            avoid = true;
                            this.btnApply.Enabled = true;
                            this.btnDelAvoidCode.Enabled = true;
                            this.btnEnableAvoidCode.Enabled = true;
                            this.btndisableAvoidCode.Enabled = true;
                            this.btnExportAvoidCode.Enabled = true;
                        }
                    }

                    FrmMsg frmMsgg = new FrmMsg("数据导入成功!", 1, FrmMsg.MsgBtn.OK);
                    frmMsgg.ShowDialog();
                    frmMsgg.Dispose();
                    lvAvoidList.Refresh();
                }
                catch
                {
                    FrmMsg frmMsgg = new FrmMsg("部分数据格式有误,请检查", 2, FrmMsg.MsgBtn.OK);
                    frmMsgg.ShowDialog();
                    frmMsgg.Dispose();
                }

            }

 

 

导出代码段

         private void btnExportAvoidCode_Click(object sender, EventArgs e)
        {
            if (lvAvoidList.Items.Count == 0)
            {
                FrmMsg frmMsg = new FrmMsg("导出数据为空!", 2, FrmMsg.MsgBtn.OK);
                frmMsg.ShowDialog();
                frmMsg.Dispose();
                return;
            }

            try
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.InitialDirectory = "c://";
                sfd.Filter = "EXCEL表格(*.csv)|*.csv|文本文件(*.txt)|*.txt";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    if (sfd.FileName.Substring(sfd.FileName.Length - 3) == "txt")
                    {
                        string[] lz = new string[lvAvoidList.Items.Count];
                        for (int j = 0; j < lvAvoidList.Items.Count; j++)
                        {
                            ListViewItem gi = lvAvoidList.Items[j];
                            for (int i = 0; i < gi.SubItems.Count; i++)
                            {
                                lz[j] += gi.SubItems[i].Text;
                                lz[j] += "/t";
                            }
                            lz[j] += "/n";
                        }

                        FileStream fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
                        sw.Flush();
                        sw.BaseStream.Seek(0, SeekOrigin.Begin);

                        string ts = lvAvoidList.Columns[0].Text;
                        for (int k = 1; k < lvAvoidList.Columns.Count; k++)
                        {
                            ts += "/t" + lvAvoidList.Columns[k].Text;
                        }
                        sw.WriteLine(ts);
                        for (int i = 0; i < lvAvoidList.Items.Count; i++)
                        {
                            sw.WriteLine(lz[i]);
                        }
                        sw.Flush();
                        sw.Close();
                    }
                    else
                    {
                        FileStream fs = File.Open(sfd.FileName, FileMode.OpenOrCreate, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs, Encoding.Default);
                        sw.WriteLine("电话号码,状态");
                        for (int j = 0; j < lvAvoidList.Items.Count; j++)
                        {
                            ListViewItem gi = lvAvoidList.Items[j];
                            string itemValue = gi.SubItems[0].Text;
                            for (int i = 1; i < gi.SubItems.Count; i++)
                            {
                                itemValue += "," + gi.SubItems[i].Text;
                            }
                            sw.WriteLine(itemValue);
                        }
                        sw.Close();
                        sw.Dispose();
                        fs.Close();
                        fs.Dispose();
                    }
                }
                int actionType = 0;
                string memo = "导出了免录号码记录";
                Program.g_Global.m_logWrite.DBLog(actionType, memo);
            }
            catch (Exception ex)
            {
                FrmMsg frmMsg = new FrmMsg(ex.Message, 2, FrmMsg.MsgBtn.OK);
                frmMsg.ShowDialog();
                frmMsg.Dispose();
            }
            finally
            {
                GC.Collect();
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值