zoukankan      html  css  js  c++  java
  • csv 格式文件 导入导出

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.Common;
    using System.Data.OleDb;
    using System.IO;

    /// <summary>
    /// DataSet2CSV 的摘要说明
    /// </summary>
    public class DataSet2CSV
    {
        public DataSet2CSV()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        #region 001----将DataSet转换成CSV文件
        public static void Export2CSV(DataSet ds, string tableName, bool containColumName, string fileName)
        {
            string csvStr = ConverDataSet2CSV(ds, tableName, containColumName);
            if (csvStr == "") return;
            FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
            //将string转换成byte[]
            byte[] csvArray = System.Text.Encoding.ASCII.GetBytes(csvStr.ToCharArray(), 0, csvStr.Length - 1);
            fs.Write(csvArray, 0, csvStr.Length - 1);
            fs.Close();
            fs = null;
        }

        /// <summary>
        /// 将指定的数据集中指定的表转换成CSV字符串
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public static string ConverDataSet2CSV(DataSet ds, string tableName, bool containColumName)
        {
            //首先判断数据集中是否包含指定的表
            if (ds == null || (!ds.Tables.Contains(tableName) && ds.Tables.Count < int.Parse(tableName)))
            {
                //MessageBox.Show("指定的数据集为空或不包含要写出的数据表!", "系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                return "";
            }
            string csvStr = "";
            //下面写出数据
            DataTable tb = !ds.Tables.Contains(tableName) ? ds.Tables[int.Parse(tableName)]: ds.Tables[tableName];
            //写表名
            //csvStr += tb.TableName + "\n";
            //第一步:写出列名
            if (containColumName)
            {
                foreach (DataColumn column in tb.Columns)
                {
                    csvStr += "\"" + column.ColumnName + "\"" + ",";
                }
                //去掉最后一个","
                csvStr = csvStr.Remove(csvStr.LastIndexOf(","), 1);
                csvStr += "\n";
            }
            //第二步:写出数据
            foreach (DataRow row in tb.Rows)
            {
                foreach (DataColumn column in tb.Columns)
                {
                    csvStr += "\"" + row[column].ToString() + "\"" + ",";
                }
                csvStr = csvStr.Remove(csvStr.LastIndexOf(","), 1);
                csvStr += "\n";
            }
            return csvStr;
        }

        #endregion

        #region 002----从CSV文件填充DataSet
        public static DataSet ConverCSV2DataSet(string fileName, string tableName, int StartSN, int EndSN)
        {
            DataSet ds = new DataSet();
            string _filePath, _fileName;
            _filePath = fileName.Substring(0, fileName.LastIndexOf(@"\") + 1);
            _fileName = fileName.Substring(fileName.LastIndexOf(@"\") + 1);
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + _filePath + @"\" + ";Extended Properties=\"Text;HDR=Yes;FMT=Delimited\"";
            OleDbConnection oleCon = new OleDbConnection(conStr);
            OleDbDataAdapter da = new OleDbDataAdapter("Select * from " + _fileName + " where cint(one) >=" + StartSN + " and cint(one) <=" + EndSN, oleCon);
            da.Fill(ds, tableName);
            oleCon.Close();
            return ds;
        }
        #endregion
    }

  • 相关阅读:
    数据分析 --- 01. Numpy
    爬虫 --- 08. 全站爬取(CrawlSpider), 分布式, 增量式爬虫
    爬虫 --- 07. 全站爬取(手动), post请求,cookie, 传参,中间件,selenium
    数据结构 --- 02. 内存, 顺序表, 单链表
    数据结构 --- 01. 时间复杂度,timeit模块,栈,队列,双端队列
    爬虫 --- 06. scrapy框架初始,移动端数据爬取
    爬虫 --- 05. 异步协程, 浏览器自动化,
    爬虫 --- 04. 代理服务器, 验证码识别, 处理cookie,线程池
    爬虫 --- 02. 爬取图片,数据解析
    一个关于const 变量作为map键值的Bug
  • 原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1502199.html
Copyright © 2011-2022 走看看