C#讀取CSV檔案到DataTable
今天做個小程式,需要批量讀取CSV檔案到資料庫,網上有不少CSVHelper,但是看了下,多少都有點問題,主要是分割逗號問題,還有就是欄位處理問題。我自己做了些改良,用起來不錯。
using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; namespace BtsMaster { public class CSVhelper { /// <summary> /// 將Csv讀入DataTable /// </summary> /// <param name="filePath">csv檔案路徑</param> /// <param name="n">表示第n行是欄位title,第n+1行是記錄開始</param> /// <param name="k">可選引數表示最後K行不算記錄預設0</param> public DataTable csv2dt(string filePath, int n,DataTable dt) //這個dt 是個空白的沒有任何行列的DataTable { String csvSplitBy = "(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)"; StreamReader reader = new StreamReader(filePath, System.Text.Encoding.Default, false); int i = 0, m = 0; reader.Peek(); while (reader.Peek() > 0) { m = m + 1; string str = reader.ReadLine(); if (m >= n + 1) { if (m == n + 1) //如果是欄位行,則自動加入欄位。 { MatchCollection mcs = Regex.Matches(str, csvSplitBy); foreach (Match mc in mcs) { dt.Columns.Add(mc.Value); //增加列標題 } } else { MatchCollection mcs = Regex.Matches(str, "(?<=^|,)(\"(?:[^\"]|\"\")*\"|[^,]*)"); i = 0; System.Data.DataRow dr = dt.NewRow(); foreach (Match mc in mcs) { dr[i] = mc.Value; i++; } dt.Rows.Add(dr); //DataTable 增加一行 } } } return dt; } } }
注意,如果CVS檔案最後一行不是你想要的,可以通過DataTable.Rows.RemoveAt(RowsCount-1)來刪除,比如dt.Rows.RemoveAt(dt.Rows.Count-1)
相關推薦
C#讀取CSV檔案到DataTable
今天做個小程式,需要批量讀取CSV檔案到資料庫,網上有不少CSVHelper,但是看了下,多少都有點問題,主要是分割逗號問題,還有就是欄位處理問題。我自己做了些改良,用起來不錯。 using System; using System.Collections.Gener
C++讀取CSV檔案
寫入資料到CSV檔案 #include <iostream> #include <fstream> #include <iomanip> #include <sstream> #include <string> u
C++讀取CSV檔案,並將逗號分隔符檔案分割成N個數組
#include <stdio.h> #include <string.h> // #include <windows.h> #define MAXLINE 256 struct student { char stuName[10
c++讀取csv檔案和寫入檔案
一直以來感覺對檔案的讀寫和流的使用比較陌生,最近在寫的一個project正好需要讀取csv檔案的資料和建立新的csv檔案,於是在網上看了一些對csv檔案讀寫操作的文章,基本瞭解了大概的操作。 讀取.
c# 讀取csv檔案的三種方式
class operateCSV { /// <summary> /// 讀取CSV檔案通過文字格式 /// </summary> /// <param name="strpath"></para
C#讀取CSV檔案並儲存進資料庫
/// <summary> /// 讀檔案 /// </summary> /// <param name="path">檔案路徑</param
用C++讀取.csv檔案
//.csv檔案可以用excel開啟 struct Feature{ int ID int age;//年齡 int gender; }User; #include<
C#開發小試手----小功能:C#讀取csv檔案——針對兩種不同需求的表頭
在練習過程中先後遇到了以下兩種需求:完整讀取CSV檔案,包括CSV檔案的表頭只讀取CSV檔案內容,表頭自定義新增針對需求1,程式碼如下://*********************************csv2dt----讀取csv表頭方案****************
讀取CSV檔案到DataTable--C#
從CSV讀取資料到DataTable(這裡第一行是標題,因此需要排除): /// <summary> /// generate DataTable instance fro
讀取csv 檔案 c#
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReadCSV
c語言讀取csv檔案
{ FILE*fp;floatvalue; system_time_t system_time; charline[MAX_LINE];if((fp=fopen("d:\\1.csv","r"))==NULL) { printf("Can't open d:\\1.csv\n"); } memset
c++較好程式:讀取csv檔案
class file_reader_t { private: ifstream input; public: trace_reader_t(string filename) : input(filename.c_str()) {
讀取CSV檔案到DataTable
由於專案需要,所以寫了這麼個方法。 最初是使用odbc,將csv作為一個數據源讀取,但後來發現效率差很多,而且讀取的資料型別有問題 public static DataTable ReadCSVToTable(string filePath) { Da
如何讀取CSV檔案到DataTable中,然後存到資料庫
public void FileToDB() { string line = "";//將檔案中的一行資料讀出,賦值給line int i = 0;//計數檔案中的行數 i
C語言讀取CSV檔案的方法1
1、字串處理中的 strtok() 函式我們首先來介紹C語言標準庫中的一個非常有用的字串處理函式 strtok(),該函式位於標頭檔案string.h中,它的原型是:char *strtok( char
讀取csv檔案內容到DataTable
int intColCount = 0; bool blnFlag = true; DataTable mydt = new DataTable("myTableName"); DataColumn mydc; DataRow mydr; string str
C語言讀取CSV檔案的方法2
在之前的文章中,我們已經介紹了利用strok()函式對CSV檔案進行解析的基本方法。本文將在此基礎上更進一步,我們要將一個用CSV檔案儲存的表格資料放進一個二維陣列中。首先來看看作為示例的一個小型的CS
android讀取csv檔案資料
csv檔案是一種表格形式的檔案,如果把檔案字尾名改為.txt,會發現同一行資料之間是用英文“,”隔開的。 如何讀取csv檔案以便把資料存入資料庫呢,特別是csv檔案中有些資料是空? csv檔案如下: 把檔案字尾名改為.txt後如下: 電錶id,電錶編號,模組地址,描述,所屬站點名稱,
C#讀取txt檔案並畫圖
tools.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; us
C 讀取文字檔案和C 寫文字檔案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!