|
|
|
รบกวนพี่ๆเรื่องการคั่นคอลั่มจาก (,) เป็น (|) ใน .csv ไฟล์ด้วยครับ |
|
|
|
|
|
|
|
รบกวนพี่ๆเรื่องการคั่นคอลั่มจาก (,) เป็น (|) ใน .csv ไฟล์ด้วยครับ
รบกวนสอบถามพี่ๆหน่อยนะครับ เรื่องตัวคั่นระหว่างฟิวของ .csv ครับ
คือผมจะ inport และ export data เป้น csv หรือนำ csv เข้าไป database ครับ
ปกติ csv จะถูกขั้นฟิวด้วย (,) และ text ด้วย (") ใช่ปะครับ
พอรัน code ผมก็จะได้ไฟล์ออกมาประมาณนี้ หรือ นำเข้าก็ต้องนำเข้าประมาณนี้
"Rex","100"
แต่พอดีเจ้านายต้องการจะให้ขั้นด้วย (|) ไปค์ แทน และตัด (") ที่ text ออกครับ ประมาณนี้
ReX|100
ผมตึงมือเลย หาข้อมูลเป้นวันแล้วก็ยังทำไม่ได้ครับผม รบกวนพี่ๆช่วยดูทีนะครับ
นี่code ส่วนของการอ่าน csv ขึ้นมาเป็น datatable ครับผม
Code (C#)
//*** Convert CSV to DataTable ***//
protected DataTable CsvCreateDataTable(String strPath, String strFilesName)
{
OleDbConnection objConn = new OleDbConnection();
OleDbDataAdapter dtAdapter;
DataTable dt = new DataTable();
String strConnString;
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + strPath +
";Extended Properties=\"TEXT;HDR=No;FMT=Delimited;Format=Delimited(|)\";";
objConn = new OleDbConnection(strConnString);
objConn.Open();
String strSQL;
strSQL = "SELECT * FROM " + strFilesName;
dtAdapter = new OleDbDataAdapter(strSQL, objConn);
dtAdapter.Fill(dt);
dtAdapter = null;
objConn.Close();
objConn = null;
return dt; //*** Return DataTable ***//
}
อันนี้ส่วนของการ นำ data เขียนลงไป csv ครับ
Code (C#)
protected void ExportToCSV(DataTable dt)
{
System.Data.OleDb.OleDbConnection objConn;
System.Data.OleDb.OleDbCommand objCmd;
String strConnString, strSQL;
int i;
//String strPath = "csv/";
String strPath = @"E:\PTTPMCRMDATA\CRM_SIEBEL\EXPORT\";
String strFileName = "ComplaintAttachment_SAGE.csv";
//*** Create Text Files (Columns Default ***// ***//
StreamWriter StrWer;
StrWer = File.CreateText(strPath + strFileName);
//StrWer = File.CreateText(Server.MapPath(strPath) + strFileName);
StrWer.Write("H,Complaint_No,VC,File_Name,File_Ext");
StrWer.Close();
//*** Connect to CSV ***//
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + strPath +
";Extended Properties='TEXT;HDR=Yes;FMT=Delimited;Format=Delimited(|)'";
objConn = new System.Data.OleDb.OleDbConnection(strConnString);
objConn.Open();
try
{
//*** Loop Write CSV ***//
for (i = 0; i <= dt.Rows.Count - 1; i++)
{
string OldComplaint_No = dt.Rows[i]["case_ComplaintNo"].ToString();
string[] arrbkComplaint_No = OldComplaint_No.Split(' ');
string case_ComplaintNo = arrbkComplaint_No[0];
string OldFileName = dt.Rows[i]["Libr_FileName"].ToString();
string[] arrbkFileName = OldFileName.Split('.');
string FileName = arrbkFileName[0];
string ext = arrbkFileName[1];
strSQL = "INSERT INTO " + strFileName + " (H,Complaint_No,VC,File_Name,File_Ext) " +
"VALUES ('D','" + case_ComplaintNo + "','Polymer','" + FileName + "'" +
" ,'" + ext + "')";
objCmd = new System.Data.OleDb.OleDbCommand();
objCmd.Connection = objConn;
objCmd.CommandType = CommandType.Text;
objCmd.CommandText = strSQL;
objCmd.ExecuteNonQuery();
}
Label1.Text = this.Label1.Text + "Export CSV : " + strFileName + " <B>Successfully</B> <br>";
}
catch (Exception err)
{
Label1.Text = this.Label1.Text + "Export CSV : " + strFileName + " <B>Can't Copy</B> <br>";
}
//Label1.Text = this.Label1.Text + "Export Successfully <a href=" + strPath + strFileName + ">Click here</a> <br>";
objCmd = null;
objConn.Close();
objConn = null;
}
รบกวนพี่ๆทีนะครับ ขอบคุณมากๆเลยครับผม
Tag : ASP.NET, C#
|
|
|
|
|
|
Date :
2011-01-12 16:22:51 |
By :
systemAI |
View :
1506 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะครับ จะลองดูครับ
|
|
|
|
|
Date :
2011-01-12 20:54:35 |
By :
systemAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าไม่ใช้การ Text Files แล้วตัดเอา จะใช้แบบ ado แบบผม มีท่านไดทราบบ้างรึป่าวครับว่าต้องทำยังไง
ผมเห็นมีเวปต่างประเทศเวปนึง แต่ผมไม่เข้าใจว่ามันให้ทำอะไรอะครับ
http://th.w3support.net/index.php?db=so&id=471039
|
|
|
|
|
Date :
2011-01-12 20:58:53 |
By :
systemAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนที่จะ export คุณก็เอา Field ที่ต้องการมาต่อกันก่อนสิครับ
|
|
|
|
|
Date :
2011-01-13 06:41:36 |
By :
Programmer ด้อยปัญญา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ นอกจากต่อ string มีวิธีอื่นอีกรึ่ป่าวครับ
|
|
|
|
|
Date :
2011-01-14 22:19:55 |
By :
systemAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|