C# อยากทราบดึงข้อมูลจาก Excel มาใส่ใน textbox ครับ
อยากทราบวิธี import ข้อมูลใน excel ลง textbox แล้วให้ save อัตโนมัติ
หลังจาก input แต่ละแถวเสร็จครับ
excel มีหลาย sheet ด้วยครับ แต่แต่ละ sheet ข้อมูลรหัสจะตรงกันทุก cells
ตอนนี้ code ผมเป็นแบบนี้ครับ
Code (C#)
using Excel = Microsoft.Office.Interop.Excel;
//Open excel
Excel.Application exlApp = null;
Excel.Workbook exlWorkBook = null;
Excel.Worksheet exlWorkSheet = null;
object misValue = System.Reflection.Missing.Value;
exlApp = new Excel.ApplicationClass();
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
exlWorkBook = exlApp.Workbooks.Open(strExcelPath, 0, true, 5, "", "", true,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
"\t", false, false, 0, true, 1, 0);
exlWorkSheet = (Excel.Worksheet)exlWorkBook.Worksheets.get_Item(1);
Tag : .NET, C#, C
Date :
2017-02-27 14:13:35
By :
mhoobin
View :
5647
Reply :
15
มีตัวอย่างประกอบไม๊ครับ ว่าลักษณะ ข้อมูลใน excel เป็นยังไง
แล้วต้องการให้ดึงข้อมูลออกมาเป็นรูปแบบไหน
Date :
2017-02-27 15:26:20
By :
lamaka.tor
ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-02-27 15:26:20
รายละเอียดของการตอบ ::
ข้อมูลในไฟล์ excel ตามรูปครับ
Code
========อันนี้ code ตอนนี้ครับ=======
using Excel = Microsoft.Office.Interop.Excel;
//Open excel
Excel.Application exlApp = null;
Excel.Workbook exlWorkBook = null;
Excel.Worksheet exlWorkSheet = null;
object misValue = System.Reflection.Missing.Value;
exlApp = new Excel.ApplicationClass();
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
exlWorkBook = exlApp.Workbooks.Open(strExcelPath, 0, true, 5, "", "", true,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
"\t", false, false, 0, true, 1, 0);
exlWorkSheet = (Excel.Worksheet)exlWorkBook.Worksheets.get_Item(1);
Date :
2017-02-27 15:30:19
By :
mhoobin
ต้องการเอาข้อมูลในแต่ละ column ใน excel มาใส่ใน textbox ใน โปรแกรม ครับ
Date :
2017-02-27 15:31:26
By :
mhoobin
ใช้ตัวนี้แทนครับ
Code (C#)
FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
//Choose one of either 1 or 2
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//Choose one of either 3, 4, or 5
//3. DataSet - The result of each spreadsheet will be created in the result.Tables
DataSet result = excelReader.AsDataSet();
//4. DataSet - Create column names from first row
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
//5. Data Reader methods
while (excelReader.Read())
{
//excelReader.GetInt32(0);
}
//6. Free resources (IExcelDataReader is IDisposable)
excelReader.Close();
Date :
2017-02-27 15:38:50
By :
mr.win
อันนี้รูปในโปรแกรมครับ เป็น textbox ธรรมดา ครับ
ส่วน database ไม่มีครับ เพราะว่า กด save ให้ออกเป็น format excel ของต้นฉบับครับ
คือ เหมือนเอา ข้อมูลพวกใน textbox ลงใน excel ต้นฉบับครับ
ส่วนของการ save เป็น file excel ทำได้แล้วครับ
ติดตรงที่ import excel ลง textbox ครับ ^^
Date :
2017-02-27 16:59:09
By :
mhoobin
ถ้าใช้ excel เป็น database ข้อผิดพลาดในแง่ข้อการเชื่อมโยง ข้อมูลอาจจะผิดพลาดได้นะครับ
ในกรณีที่เรา Insert/Update/Delete ข้อมูลต่าง ๆ อาจจะทำให้ Sheet ที่เกี่ยวข้อง ผิดพลาดได้เช่นกัน
แต่ยังอยากใช้อยู่ หน้านี้ ก็จะต้อง ทำให้สามารถ เรียก listรหัสพนักงาน
แล้วก็เอา รหัสพนักงาน ไปค้นหาว่าอยู่แถวไหน ก็เอา ข้อมูลนั้นมาลง
ลองสร้าง ฟอร์มมาซัก ฟอร์ม เป็นฟอร์มรหัสพนักงาน
งานนี้ บอกได้เลยว่า เน้น for loop หนักมาก ครับ
ขั้นตอนเป็นแบบนี้นะครับ
1. เปิด list รหัสพนักงาน เพื่อเลือก
2. เอา ID ไปค้น แบบ for
3. เจอแล้วก็เอาแถวนั้นมายัดลง ตามที่เราต้องการ
ลองหาวิธี เลือกรหัสพนักงาน ออกมาก่อนครับ
Date :
2017-02-27 17:12:11
By :
lamaka.tor
งั้นหน้าอยากจะโชวแค่ ข้อมูล พนง 1 คน ใช่ไม๊ครับ
คำถามคือ ท่านจะเอา รหัสพนักงาน มาจากฟอร์มไหน เพื่อมาใส่ให้ข้อมูลสมบูรณ์ครับ
ถ้าไม่มีอะไรในความคิดนั้นๆ ผมก็เสนอแนะว่า
ขั้นตอนเป็นแบบนี้นะครับ
1. เปิด list รหัสพนักงาน เพื่อเลือก
2. เอา ID ไปค้น แบบ for
3. เจอแล้วก็เอาแถวนั้นมายัดลง ตามที่เราต้องการ
อาจจะต้องใช้จินตนาการนิดหนึ่ง เพรราะผมไม่ใช่ โปรแกรมเมอร์ คิดอะไรได้ก็ร่ายตามน้ำเมาไปเรื่อยแหละครับ 5555
Date :
2017-02-27 17:24:34
By :
lamaka.tor
ครับ
ประวัติการแก้ไข 2017-02-28 10:10:57
Date :
2017-02-28 10:09:43
By :
lamaka.tor
ลองเขียน โฟรชารทดูยังครับ
ว่าขั้นตอนทั้งหมดเป็นยังไง
เริ่มตั้งแต่เปิด excel จนปิดโปรแกรมไป
Date :
2017-02-28 10:12:58
By :
lamaka.tor
ไม่รู้ว่าทำได้หรือยังครับ ถ้ายังไม่ได้ลองเอาตัวอย่างนี้ไปดูนะครับ
อันนี้แค่ดึงจาก Excel มาที่แสดง datagridview และคลิกที่แถวของ datagridview แล้วแสดงที่ TextBox
จากนั้นกดปุ๋ม Save ก็แค่ update date list เท่านั้นยังไม่ถึงขั้นตอน บันทึกลง Excel อันนี้ศึกษาเอง
ผมใช้ EPPlus
link
https://1drv.ms/u/s!AvNP70jk_yhUhDTXZmBNiDNXz7MP
code ตัวอย่าง เอาไฟล์ Excel ไปไว้ Drive D: ด้วยนะครับหรือจะเปลี่ยนที่ Code ก็ตามแต่
กลัวอาจารย์หน้าฮี ว่าแจก code จัง (โค้ดยิ่งบ้านๆอยู่)
Date :
2017-03-01 17:29:20
By :
บัญดิษฐ
Load balance : Server 04