• 大小: 7KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C#
  • 标签: c#  csv  解析  小数  

资源简介

完美解决C#在解析csv时,把字符串当做小数处理问题; 直接使用,传入绝对路径即可

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;
using System.Text.Regularexpressions;

namespace _3GAlarm_Test
{
    class CSVProvider
    {
        /// 
        /// 将CSV数据转换为DataTable
        /// 

        /// csv文件路径
        /// 是否将第一行作为字段名
        /// 
        public static DataTable ToDataTable2(string csvFilePath bool isRowHead)
        {
            DataTable dt = null;
            if (File.Exists(csvFilePath))
            {
                string csvstr = File.ReadAllText(csvFilePath Encoding.Default);
                if (!string.IsNullOrEmpty(csvstr))
                {
                    dt = ToDataTable(csvstr isRowHead);
                }
            }
            return dt;
        }
        /// 
        /// 将CSV数据转换为DataTable
        /// 

        /// 包含以““分隔的CSV数据的字符串
        /// 是否将第一行作为字段名
        /// 
        public static DataTable ToDataTable(string csv bool isRowHead)
        {
            DataTable dt = null;
            if (!string.IsNullOrEmpty(csv))
            {
                dt = new DataTable();
                string[] csvRows = csv.Split(new string[] { Environment.NewLine } StringSplitOptions.RemoveEmptyEntries);
                string[] csvColumns = null;
                if (csvRows != null)
                {
                    if (csvRows.Length > 0)
                    {
                        //第一行作为字段名添加第一行记录并删除csvRows中的第一行数据
                        if (isRowHead)
                        {
                            csvColumns = FromCsvLine(csvRows[0]);
                            csvRows[0] = null;
                            for (int i = 0; i < csvColumns.Length; i++)
                            {
                                dt.Columns.Add(csvColumns[i]);
                            }


                        }

                        for (int i = 0; i < csvRows.Length; i++)
                        {
                            if (csvRows[i] != null)
                            {
                                csvColumns = FromCsvLine(csvRows[i]);
                                //检查列数是否足够不足则补充
                                if (dt.Columns.Count < csvColumns.Length)
                                {
                                    int columnCount = csvColumns.Length - dt.Columns.Count;
                                    for (int c = 0; c < columnCount; c++)
                                    {
                                        dt.Columns.Add();
                                    }
                                }
                                dt.Rows.Add(csvColumns);
                            }
                        }
       

评论

共有 条评论