c# 讀取csv檔案的三種方式
{
/// <summary>
/// 讀取CSV檔案通過文字格式
/// </summary>
/// <param name="strpath"></param>
/// <returns></returns>
public DataTable readCsvTxt(string strpath)
{
int intColCount = 0;
bool blnFlag = true;
DataTable mydt = new DataTable("myTableName");
DataColumn mydc;
DataRow mydr;
string strline;
string [] aryline;
System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);
while((strline = mysr.ReadLine()) != null)
{
aryline = strline.Split(',');
if (blnFlag)
{
blnFlag = false;
intColCount = aryline.Length;
for (int i = 0; i < aryline.Length; i++ )
{
mydc = new DataColumn(aryline[i]);
mydt.Columns.Add(mydc);
}
}
mydr = mydt.NewRow();
for (int i = 0; i < intColCount; i++ )
{
mydr[i] = aryline[i];
}
mydt.Rows.Add(mydr);
}
return mydt;
}
/// <summary>
/// 利用SQL查詢CSV
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public DataTable readCsvSql(string path, string filename, string deviceName)
{
string strconn = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;", path);
string sql = string.Format("SELECT * FROM [{0}]", filename);
using (OleDbConnection conn = new OleDbConnection(strconn))
{
DataTable dtTable = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
try
{
adapter.Fill(dtTable);
logHelper.WriteLog(string.Format("[裝置]:{0}-->讀取檔案-->結果:成功", deviceName));
}
catch (Exception ex)
{
dtTable = new DataTable();
logHelper.WriteLog(string.Format("[裝置]:{0}-->讀取檔案-->結果:{1}", deviceName, ex.Message));
throw ex;
}
return dtTable;
}
}
/// <summary>
/// 讀取CSV檔案
/// </summary>
/// <param name="mycsvdt"></param>
/// <param name="filepath"></param>
/// <returns></returns>
public bool readCsvFile(ref DataTable mycsvdt, string filepath)
{
string strpath = filepath; //csv檔案的路徑
try
{
int intColCount = 0;
bool blnFlag = true;
DataColumn mydc;
DataRow mydr;
string strline;
string[] aryline;
StreamReader mysr = new StreamReader(strpath, System.Text.Encoding.Default);
while ((strline = mysr.ReadLine()) != null)
{
aryline = strline.Split(new char[] { ',' });
//給datatable加上列名
if (blnFlag)
{
blnFlag = false;
intColCount = aryline.Length;
int col = 0;
for (int i = 0; i < aryline.Length; i++)
{
col = i + 1;
mydc = new DataColumn(col.ToString());
mycsvdt.Columns.Add(mydc);
}
}
//填充資料並加入到datatable中
mydr = mycsvdt.NewRow();
for (int i = 0; i < intColCount; i++)
{
mydr[i] = aryline[i];
}
mycsvdt.Rows.Add(mydr);
}
return true;
}
catch (Exception e)
{
//throw (Stack.GetErrorStack(strpath + "讀取CSV檔案中的資料出錯." + e.Message, "OpenCSVFile("));
return false;
}
}
}
}
相關推薦
QT中讀取XML檔案三種方式 的例項
第一部分:QXmlStreamReader XML(eXtensible Markup Language)是一種通用的文字格式,被廣泛運用於資料交換和資料儲存(雖然近年來 JSON 盛行,大有取代 XML 的趨勢,但是對於一些已有系統和架構,比如 WebService,由於歷史原因,仍舊會繼
C#讀取Excel的三種方式以及比較
優點:將Excel直接當做資料來源處理,通過SQL直接讀取內容,讀取速度較快。 缺點:讀取資料方式不夠靈活,無法直接讀取某一個單元格,只有將整個Sheet頁讀取出來後(結果為Datatable)再在Datatable中根據行列數來獲取指定的值。 當Excel資料量很大時。會非常佔
c# 讀取csv檔案的三種方式
class operateCSV { /// <summary> /// 讀取CSV檔案通過文字格式 /// </summary> /// <param name="strpath"></para
C#開發小試手----小功能:C#讀取csv檔案——針對兩種不同需求的表頭
在練習過程中先後遇到了以下兩種需求:完整讀取CSV檔案,包括CSV檔案的表頭只讀取CSV檔案內容,表頭自定義新增針對需求1,程式碼如下://*********************************csv2dt----讀取csv表頭方案****************
ASP.NET中 C#訪問資料庫用三種方式顯示資料表
第一種方式:使用DataReader從資料庫中每次提取一條資料,用迴圈遍歷表 下面是我寫的一個例子: &nbs
C++ 建立物件的三種方式
第一種和第二種沒什麼區別,一個隱式呼叫,一個顯式呼叫,兩者都是在程序虛擬地址空間中的棧中分配記憶體,而第三種使用了new,在堆中分配了記憶體,而棧中記憶體的分配和釋放是由系統管理,而堆中記憶體的分配和釋放必須由程式設計師手動釋放。採用第三種方式時,必須注意一下幾點問題: n
C++讀取CSV檔案
寫入資料到CSV檔案 #include <iostream> #include <fstream> #include <iomanip> #include <sstream> #include <string> u
從TcpSocket上讀取資料的三種方式
我在一個專案中碰到了一個TcpSocket的應用。在java程式中使用TcpSocket同本機的一個服務進行程序間的通訊。由於通訊路徑只是單機並沒有經過網路,因此兩個程序之間的互通相對與網路傳輸是比較快速的。因此,程序間的互動使用瞭如下方式:(見上傳圖片)讓我們看一下程式碼實
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檔案讀寫操作的文章,基本瞭解了大概的操作。 讀取.
Java從鍵盤讀取資料的三種方式
1.讀取單個字元: 從輸入流中讀取資料的下一個位元組,返回0~255範圍內的int型位元組值,如果達到輸入流的末尾,則返回-1。所以讀取char型別時需要將int型別轉換成char型別 Syst
C#讀取CSV檔案到DataTable
今天做個小程式,需要批量讀取CSV檔案到資料庫,網上有不少CSVHelper,但是看了下,多少都有點問題,主要是分割逗號問題,還有就是欄位處理問題。我自己做了些改良,用起來不錯。 using System; using System.Collections.Gener
springBoot使用Controller讀取配置檔案兩種方式&讀取自定義配置方法
Controller 核心配置檔案 application.propertie web.msg=Hello! This is Controller demo; Controller:
C#讀取CSV檔案並儲存進資料庫
/// <summary> /// 讀檔案 /// </summary> /// <param name="path">檔案路徑</param
c&c++記憶體分配的三種方式
三種記憶體分配方式: 一:從全域性儲存區域分配:這時記憶體在程式編譯階段就已經分配好,該記憶體在程式執行的整個週期都有效,如:全域性變數、static靜態變數。 二:從棧區分配:在執行函式的時候,函式中的區域性變數的儲存單元都可以從棧中分配,函式執行結束後這些儲存單元都會
C#讀取Excel資料兩種方式效能對比
方式一:程式讀取Excel資料,程式碼如下: Excel.Application m_ExcelFile = new Excel.Application(); Excel._Workbook m_Workbook;
用C++讀取.csv檔案
//.csv檔案可以用excel開啟 struct Feature{ int ID int age;//年齡 int gender; }User; #include<
java讀取寫入檔案幾種方式效率比較
public class ReadTxtJson {public static String readTxtFile(String FileName) throws Exception {BufferedInputStream bufferedInputStream = n
讀取檔案,並按原格式輸出檔案內容的三種方式
1 filename = 'Car.py' 2 3 #讀取整個檔案 4 with open(filename) as file_object: 5 lines = file_object.read() 6 print(lines) 7 8 9 #遍歷檔案物件 10
Python讀取txt檔案的三種方式
文字處理是經常碰到的一個問題,Python的文字讀取有三個方法可以呼叫: read() readaline() readlines() 直接看名字就大概能猜出什麼意思。 第一個函式就是直接把文字內容全部讀取出來 第二個函式是逐行讀取 第三個函式是逐行全部讀取