Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ดึงข้อมูลจาก Excel มาใส่ในแต่ละที่เช่นใน textbox dategridview



 

ดึงข้อมูลจาก Excel มาใส่ในแต่ละที่เช่นใน textbox dategridview

 



Topic : 122256



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์




หน้า Ui ครับ
1

ข้อมูล
02

เราจะดึงข้อมูลแบบเปิดไฟล์ แล้วข้อมูลมาแสดงยังไงบ้างอะครับ
ขอตัวอย่างหน่อยครับ ขอบคุณครับ



Tag : .NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-04-01 13:09:29 By : phuriwat View : 5197 Reply : 56
 

 

No. 1

Guest


ใช้อะไรอ่าน excel






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:24:34 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 2



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2016-04-01 13:24:34
รายละเอียดของการตอบ ::
อันนี้ผมไช้ visual c# 2012 กับ excel2010 อันนี้ผมแอด reference แล้วนะครับ



ประวัติการแก้ไข
2016-04-01 13:33:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:32:15 By : phuriwat
 

 

No. 3

Guest


แล้วเรียก interop มาอ่านได้ยัง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:35:40 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 4



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2016-04-01 13:35:40
รายละเอียดของการตอบ ::
คือยังไงครับต้องมีขั้นตอนแบบไหนบ้างครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:38:48 By : phuriwat
 


 

No. 5

Guest


using interop แล้วก็สร้าง intance ของ excel แล้วก็เลือก sheet วนลูป row อ่านข้อมูลในแต่ละ cell
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:44:13 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 6



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2016-04-01 13:44:13
รายละเอียดของการตอบ ::
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using excel = Microsoft.Office.Interop.Excel;

namespace exceltext1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

         private void button1_Click(object sender, EventArgs e)
        {
            string nameExcel = "";
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "C# Corner Open File Dialog";
            fdlg.InitialDirectory = @"C:\";
            fdlg.Filter = "All files (*.*)|*.*|All Files (*.*)|*.xlsx";
            fdlg.FilterIndex = 2;
            fdlg.RestoreDirectory = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = fdlg.FileName;
            }

            nameExcel = fdlg.FileName;



          excel.Application App;
           excel.Workbook workBook;
           excel.Worksheet worksheet;
           string strtemplate = nameExcel;

           App= new excel.Application();

           workBook = App.Workbooks.Open(nameExcel,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows);

           worksheet = (excel.Worksheet)workBook.Worksheets.get_Item(1);

           worksheet.Cells[4, 1] = textBox2.Text;
}}}




ประวัติการแก้ไข
2016-04-01 13:49:08
2016-04-01 13:49:42
2016-04-01 13:50:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:47:28 By : phuriwat
 


 

No. 7



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : phuriwat เมื่อวันที่ 2016-04-01 13:47:28
รายละเอียดของการตอบ ::
อันนี้โค๊ดตอนนี้อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 13:48:01 By : phuriwat
 


 

No. 8



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ ขอบคุณมากครับ
โค๊ดประมานนี้ครับ
Code (C#)
string nameExcel = "";
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "C# Corner Open File Dialog";
            fdlg.InitialDirectory = @"C:\";
            fdlg.Filter = "All files (*.*)|*.*|All Files (*.*)|*.xlsx";
            fdlg.FilterIndex = 2;
            fdlg.RestoreDirectory = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = fdlg.FileName;
            }

            nameExcel = fdlg.FileName;

            excel.Application App;
            excel.Workbook workBook;
            excel.Worksheet worksheet;           
            string strtemplate = nameExcel;
            App = new excel.Application();
            workBook = App.Workbooks.Open(nameExcel, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            worksheet = (excel.Worksheet)workBook.Worksheets.get_Item(1);
            textBox2.Text  = worksheet.get_Range("a3").Value2.ToString();



ประวัติการแก้ไข
2016-04-01 15:20:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 14:34:43 By : phuriwat
 


 

No. 9



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code
worksheet.Cells[4, 1] = textBox2.Text;


ไม่ตรงกับคำถามนี่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 14:40:56 By : lamaka.tor
 


 

No. 10



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 14:40:56
รายละเอียดของการตอบ ::
คือผมจะ browse ไฟล์ excel เข้ามาอะครับ แล้วก็ดึงข้อมูลมาใส้ใน textbox กับ datagrid

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 14:58:30 By : phuriwat
 


 

No. 11



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:21:03 By : lamaka.tor
 


 

No. 12



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 15:21:03
รายละเอียดของการตอบ ::
ถ้าจะดึงมาใส่ในgrid ต้องทำไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:26:46 By : phuriwat
 


 

No. 13



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

1. เราต้องรู้ก่อนว่า excel มันมีข้อมูลสิ้นสุดตรงไหน
2. for loop เพื่อเอาข้อมูลมาลงใน datatable หรือ Datagrid

ประมาณนี้ครับ
Code (C#)
DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("SampleID", typeof(string)));
            dt.Columns.Add(new DataColumn("Parameter", typeof(string)));
            dt.Columns.Add(new DataColumn("Value", typeof(string)));
            dt.Columns.Add(new DataColumn("Date", typeof(string)));
            dt.Columns.Add(new DataColumn("ผู้วิเคราะห์", typeof(string)));
            dt.Columns.Add(new DataColumn("ผู้ตรวจสอบ", typeof(string)));
            dt.Columns.Add(new DataColumn("Seleced", typeof(Boolean)));

OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(new System.IO.FileInfo(FileExcel));
OfficeOpenXml.ExcelWorksheet sheet = package.Workbook.Worksheets[1];
for (int i = 1; i < sheet.Dimension.End.Row; i++)
                                {
                                    item = 15;
                                    if (sheet.Cells[i, item].Value != null)
                                    {

                                        if (sheet.Cells[i, item].Value.ToString() != "" && int.TryParse(sheet.Cells[i, item].Value.ToString().Trim().Substring(0, 1), out _i) != true)
                                        {
                                            DataRow dr = dt.NewRow();
                                            sampleID =  sheet.Cells[i, item].Value.ToString();
                                            dr["SampleID"] =rgx.Match(sampleID).Groups[1].Value.ToUpper() + " " +string.Format("{0:0000}",  int.Parse(rgx.Match(sampleID).Groups[2].Value));
                                            dr["Parameter"] = sheet.Cells[i, item + 1].Value;
                                            dr["Value"] = sheet.Cells[i, item + 2].Value.ToString();
                                            dr["Date"] = dd;
                                            dr["ผู้วิเคราะห์"] = sheet.Cells[i, item + 4].Value;
                                            dr["ผู้ตรวจสอบ"] = sheet.Cells[i, item + 5].Value;
                                            dr["Seleced"] = false;
                                            dt.Rows.Add(dr);
                                        }
                                    }
                                }

dataGridView1.Invoke(new Action(() =>
                    {
                        dataGridView1.DataSource = dt;
                        dataGridView1.Columns[2].Width = 120;
                        dataGridView1.Columns[3].Width = 150;
                        dataGridView1.Columns[4].Width = 180;
                        dataGridView1.Columns[5].Width = 180;
                        dataGridView1.Columns[6].Width = 80;
                        dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending);
                    }));

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:37:17 By : lamaka.tor
 


 

No. 14



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 15:37:17
รายละเอียดของการตอบ ::
ถ้ากรณีเราไม่รู้ว่าข้อมูลสิ้นสุดตรงไหน่ แต่ถ้าเชคว่า ถ้าแถวAเป้นค่าว่างไห้หยุดการเพิ่มทำไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:40:50 By : phuriwat
 


 

No. 15



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

แต่ก่อนผมใช้วิธีบ้านๆ ครับ

Code (C#)
for (int i = 1; i < 555; i++) //เอาเยอะเข้าว่า
      {
           item = 15;
          if (sheet.Cells[i, item].Value != null)
          {
           // ค่อยว่ากันไป
          }
    }


แต่ค้นตะกี้ ก็มีแบบนี้
Code (C#)
Microsoft.Office.Interop.Excel.Range range = sheet.UsedRange;
 int lastColumn = range.Columns.Count;
 int lastRow = range.Rows.Count;


http://stackoverflow.com/questions/17430418/get-the-last-cell-column-row-of-a-excel-range-object
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:47:54 By : lamaka.tor
 


 

No. 16



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 15:47:54
รายละเอียดของการตอบ ::
คือถ้ามันไม่มีแล้วหรือเป็นค่าว่างมันจะหยุด เพิ่มป่ะครับ



ประวัติการแก้ไข
2016-04-01 15:53:37
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 15:49:38 By : phuriwat
 


 

No. 17



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ใจเยนๆอย่ายึดติดครับ

Code (C#)
for (int i = 1; i < 555; i++) //เอาเยอะเข้าว่า
      {
           item = 15;
          if (sheet.Cells[i, item].Value == null)
          {
           return; //แบบนี้หยุด
           
          }
    }


แต่
Code (C#)
for (int i = 1; i < sheet.Rows.End; i++) //แบบนี้หยุด
      {
          
      }


มองให้ต่างกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 16:07:49 By : lamaka.tor
 


 

No. 18



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 17 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 16:07:49
รายละเอียดของการตอบ ::
ผมก็กะว่าจะไช้ return หละครับง่ายดี

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 16:22:36 By : phuriwat
 


 

No. 19



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

แต่ก่อน(หลายเดือนมาแล้ว) ผมใช้ Select มาเป็น datatable

ออกมาซะเละเลย 5555
เลยคิดว่าวิธี for loop น่าจะเหมาะดี

แต่หากว่า excel เป็น table จ๋า เลยก็แนะนำให้ลองใช้ Select มาเป็น datatable ดูครับจะเร็วกว่า

ของผมตารางมันไม่ตรงกันซะทีเดียวเลยต้องมาใช้ วิธี for loop

http://stackoverflow.com/questions/16293643/import-excel-to-datagridview
http://csharp.net-informations.com/datagridview/csharp-datagridview-load-excel.htm
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-01 16:29:46 By : lamaka.tor
 


 

No. 20



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-01 16:29:46
รายละเอียดของการตอบ ::
ถ้าจะบังคับให้มันเริ่มคัดลอก ที่บรรทัด ไหนหละครับ เช่น ถ้ามี หัวแบบอื่นด้วย ละข้อมุลอยู่ตรงกลาง
คือจะเอาแค่ตรงกลางลง grid อะครับสมมุติว่าเอาตั้วแต่ a3 b3 c3 d3 จนถึง บรรทัดสุดท้ายอะครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-02 18:53:25 By : phuriwat
 


 

No. 21



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code (C#)
for (int i = 1; i < sheet.Rows.End; i++) //แบบนี้หยุด
      {
          // จัดไป
      }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-04 08:09:33 By : lamaka.tor
 


 

No. 22



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 21 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-04 08:09:33
รายละเอียดของการตอบ ::
อัยยี้เราจะต้องประกาศ พวก using อะไรบ้างอะครับ ผมประกาศไปแค่ อันเดียวอะครับ
Code (C#)
using excel = Microsoft.Office.Interop.Excel;


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-05 13:11:01 By : phuriwat
 


 

No. 23



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตามตัวอย่างเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-05 13:20:10 By : lamaka.tor
 


 

No. 24



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 23 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-05 13:20:10
รายละเอียดของการตอบ ::
ตรงนี้มันไม่ได้อะครับ
Code (C#)
OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(new System.IO.FileInfo(FileExcel));
OfficeOpenXml.ExcelWorksheet sheet = package.Workbook.Worksheets[1];


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-05 13:34:46 By : phuriwat
 


 

No. 25



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 24 เขียนโดย : phuriwat เมื่อวันที่ 2016-04-05 13:34:46
รายละเอียดของการตอบ ::
ผมได้ได้ใช้ Microsoft.Office.Interop.Excel เวลาเปลี่ยน ver แล้วอ่านเพี้ยนๆผมเลยใช้ OfficeOpenXml.ExcelPackage

ที่ผมหมายถึงคือตัวอย่าง Microsoft.Office.Interop.Excel

http://stackoverflow.com/questions/17430418/get-the-last-cell-column-row-of-a-excel-range-object


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-05 15:13:53 By : lamaka.tor
 


 

No. 26



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 25 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-05 15:13:53
รายละเอียดของการตอบ ::
ยัง ไม่ได้เลยครับ ผมไม่เข้าใจตรง for อะ มันต้องทำยังไงอ่าครับ ต้องเพิ่มเติมตรงไหนยัง ไง งงครับ

อันนี้ต้องเพิ่มเติมยังไงครับ
1

อันนี้โค๊ดตอนนี้

Code (C#)
string nameExcel = "";
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "C# Corner Open File Dialog";
            fdlg.InitialDirectory = @"C:\Users\Administrator.UDZOWK481SBWBZN\Desktop\";
            fdlg.Filter = "All files (*.*)|*.*|All Files (*.*)|*.xlsx";
            fdlg.FilterIndex = 2;
            fdlg.RestoreDirectory = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = fdlg.FileName;
            }

            nameExcel = fdlg.FileName;

            excel.Application App;
            excel.Workbook workBook;
            excel.Worksheet worksheet;
            string strtemplate = nameExcel;
            App = new excel.Application();
            workBook = App.Workbooks.Open(nameExcel, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            worksheet = (excel.Worksheet)workBook.Worksheets.get_Item(1);

            Microsoft.Office.Interop.Excel.Range range = worksheet.UsedRange;
            int lastColumn = range.Columns.Count;
            int lastRow = range.Rows.Count;



            textBox2.Text = worksheet.get_Range("c4").Value2.ToString();


            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("1", typeof(string)));
            dt.Columns.Add(new DataColumn("2", typeof(string)));
            dt.Columns.Add(new DataColumn("3", typeof(string)));
            dt.Columns.Add(new DataColumn("4", typeof(string)));
            dt.Columns.Add(new DataColumn("5", typeof(string)));
            dt.Columns.Add(new DataColumn("6", typeof(string)));
            dt.Columns.Add(new DataColumn("7", typeof(string)));


            for (int i; i = worksheet.Rows.End; i++) 
            {

            }






ประวัติการแก้ไข
2016-04-18 15:44:09
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-18 15:43:12 By : phuriwat
 


 

No. 27



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

for (int i; i = range.Rows.Count; i++)
{
//ว่าเข้าไปนั่น 5555
}
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-18 16:46:09 By : lamaka.tor
 


 

No. 28



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 27 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-18 16:46:09
รายละเอียดของการตอบ ::
ไม่ได้เหมือนกันครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-18 18:35:19 By : phuriwat
 


 

No. 29



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

for (int i; i <= range.Rows.Count; i++)
{
//ว่าเข้าไปนั่น 5555
}

ติดตรงไหน ยังไง รึ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-19 08:32:07 By : lamaka.tor
 


 

No. 30



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 29 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-19 08:32:07
รายละเอียดของการตอบ ::
ผมไม่เข้าใจอะครับ ว่าต้องไปวน for ตรงไหน ของในexcel อะครับ มันกำหนดจุด วนยังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 03:01:46 By : phuriwat
 


 

No. 31



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตรงที่เดิมก็ถูกแล้วครับ

เอางี้ ให้ยึด วัตถุประสงค์ไว้ แล้ว หาโค๊ดไปใส่ให้ได้ตาม วัตถุประสงค์ ง่ายๆบ้านๆ ไม่มาก และ ไม่น้อยเกินไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 08:31:19 By : lamaka.tor
 


 

No. 32



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 31 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-20 08:31:19
รายละเอียดของการตอบ ::
คือโค๊ดหละครับที่ยังไม่ได้ งมหลายวันละครับ TT

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 10:22:21 By : phuriwat
 


 

No. 33



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 32 เขียนโดย : phuriwat เมื่อวันที่ 2016-04-20 10:22:21
รายละเอียดของการตอบ ::
แสดงว่า วัตถุประสงค์ไม่กระจ่าง ครับ

ความจริง เรื่องโค๊ดนี่ถือว่าเป็นเรื่องที่ง่ายมากๆเลยถ้าเรามีเป้าหมายที่ชัดเจนครับ

รูปแบบการเขียนโปรแกรมผมมีบ้านๆแบบนี้

1.วัตถุประสงค์ของโปรแกรม เช่นมีไว้สำหรับใช้จัดการ karaoke
2.ขั้นตอนการทำงานของโปรแกรม ก็เหมือน input output บ้านๆ
3.ลองทำมือหรือใช้อะไรที่ถนัดทำมันไปก่อนอย่าเพิ่งลงมือเขียนโปรแกรม
4.ศึกษาโค้ดแต่ละขั้นตอนตามข้อ 2
5.เมื่อคล่องแล้วก็มาลงมือทำกัน 55555
6.แก้ไขโค้ดเรื่อยๆเพื่อให้ทำงานได้ดีขึ้น

เอาละ ติดตรงไหนรึ
เห็นบอกแต่ว่าติดๆๆๆๆ ผมยังงงยุเลยว่าติดตรงไหน


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 11:19:48 By : lamaka.tor
 


 

No. 34



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 33 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-20 11:19:48
รายละเอียดของการตอบ ::
ติดตรงที่เอาข้อมูลจาก excel ลง grid ไม่ได้ครับ คือรู้ว่าต้องใช้ for วน แต่ต้องไปวนในไหนครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 12:00:20 By : phuriwat
 


 

No. 35



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ถ้าจะให้ผ่าน DataTable ก็ศึกษาเรื่อง DataTable Add rows
ถ้าจะให้ผ่าน Datagrid ก็ศึกษาเรื่อง Datagrid Add rows

เลือกได้เรื่องใดเรื่องหนึ่งครับ

ขอบอกว่าข้อมูลเยอะมากกกกกกกกกกกกกก

10 ปากว่าไม่เท่าตาบอดคับ 55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 14:01:41 By : lamaka.tor
 


 

No. 36



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 35 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-20 14:01:41
รายละเอียดของการตอบ ::
คืองี้อะครับ ผมจะเอา ตามกรอบแดงอ่าครับ เอาหมดลงgridหมด แต่ไม่เอา บางช่องอะครับ สมมุติว่ามันมี100 แถวอ่าครับ อันนี้รูปตัวอย่างอ่าครับมันต้องทำยังไงอะครับ
1



ประวัติการแก้ไข
2016-04-20 18:10:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 18:09:24 By : phuriwat
 


 

No. 37



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ให้ผ่าน DataTable หรือ ให้ผ่าน Datagrid เลยละครับ


for (int i; i <= range.Rows.Count; i++)
{
// เอามันมาลงตรงนี้ worksheet.get_Range("c4").Value2.ToString()
}
ไม่เอาช่อง B ก็ไม่ต้องเรียกใช้สิครับ
จะ ข้าม ชิด ฉาก โยก ย้าย ก็ สร้างเงื่อนไขมาได้เลย ครับ

ให้ผ่าน DataTable ก็ อ่าน No. 13
ให้ผ่าน Datagrid ก็ Datagrid.Rows.Add(// เอามันมาลงตรงนี้)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 18:22:53 By : lamaka.tor
 


 

No. 38



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 37 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-20 18:22:53
รายละเอียดของการตอบ ::
ที่ 13 item คืออะไรอะครับ



ประวัติการแก้ไข
2016-04-20 19:35:22
2016-04-20 19:54:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-20 19:34:21 By : phuriwat
 


 

No. 39



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

item ก็คือ comlumn ครับ

ไม่ต้องสนใจมัน เป็นแค่แนวทาง
ถ้างงอยู่ก็ไปอ่านเกี่ยวกับ C# การใช้งาน Microsoft.Office.Interop.Excel เอา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 08:15:06 By : lamaka.tor
 


 

No. 40



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code (C#)
for (int i = 1; i < srange.Rows.Count; i++)
                                {
                                            DataRow dr = dt.NewRow();
                                            
                                            dr["1"] =worksheet.get_Range("a" + i).Value2.ToString();
                                            dr["2"] = worksheet.get_Range("c" + i).Value2.ToString();
                                            dr["3"] = worksheet.get_Range("d" + i).Value2.ToString();
                                            dr["4"] = worksheet.get_Range("e" + i).Value2.ToString();
                                            dr["5"] = worksheet.get_Range("f" + i).Value2.ToString();
                                            dr["6"] = worksheet.get_Range("g" + i).Value2.ToString();
                                            dr["7"] = worksheet.get_Range("h" + i).Value2.ToString();
                                            dt.Rows.Add(dr);
                                        }
                                    }
                                }



dataGridView1.DataSource = dt;


หรือ
Code (C#)
for (int i = 1; i < srange.Rows.Count; i++)
                                {
  
                                            
                                            dataGridView1.Rows.Add( worksheet.get_Range("a" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("c" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("d" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("e" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("f" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("g" + i).Value2.ToString(),
                                                                                      worksheet.get_Range("h" + i).Value2.ToString())
                                        }
                                    }
                                }



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 08:42:23 By : lamaka.tor
 


 

No. 41



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 40 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 08:42:23
รายละเอียดของการตอบ ::
error นี้ครับ
1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 11:38:58 By : phuriwat
 


 

No. 42



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ผมลอง อันนี้ a10 ได้แต่ พอ +i ไปก็ขึ้นเหมือนกันอะครับ
Code (C#)
 for (int i = 1; i <= range.Rows.Count; i++)
            {
                DataRow dr = dt.NewRow();               
                dr["1"] = worksheet.get_Range("a10"+i).Value2.ToString();       
              
               
                 dt.Rows.Add(dr);

            }
            dataGridView1.DataSource = dt;


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 12:03:27 By : phuriwat
 


 

No. 43



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 12:08:29 By : mr.win
 


 

No. 44



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

พริกแพงบ้างก็ได้นะครับ
เห็นมะนาวแพงกันเยอะแล้ว 5555


เอางี้ครับ
อาจจะต้องนับหนึ่งใหม่

กลับไปหาวิธี อ่าน excel มาให้ได้ก่อนละกันครับ
เอาให้คล่องเลยนะ
ผมมี link มาให้ด้วยครับ

https://www.google.co.th/search?q=C%23+%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99+Microsoft.Office.Interop.Excel&biw=1280&bih=891&source=lnms&sa=X&ved=0ahUKEwjgiqnokJ_MAhUGkpQKHfc8CxYQ_AUIBSgA&dpr=1

ตาม link นี้เลยครับจะได้ไม่สับสน
ดูๆยิ่งเขียนยิ่งเละเลยนะเนี๊ยะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 13:50:21 By : lamaka.tor
 


 

No. 45



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 44 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 13:50:21
รายละเอียดของการตอบ ::
ลิ้ง c เนี่ย นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 13:55:35 By : phuriwat
 


 

No. 46



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

พอไปแคะหาคำตอบของปัญหาถึงได้รู้ว่า มันมาจากเจ้า worksheet.get_Range

ก็เลยตัดมันออกไปซะ
Code (C#)
for (int i = 1; i < srange.Rows.Count; i++)
                                {
                                            DataRow dr = dt.NewRow();
                                            
                                            dr["1"] =worksheet.Range("a" + i).Value2.ToString();
                                            dr["2"] = worksheet.Range("c" + i).Value2.ToString();
                                            dr["3"] = worksheet.Range("d" + i).Value2.ToString();
                                            dr["4"] = worksheet.Range("e" + i).Value2.ToString();
                                            dr["5"] = worksheet.Range("f" + i).Value2.ToString();
                                            dr["6"] = worksheet.Range("g" + i).Value2.ToString();
                                            dr["7"] = worksheet.Range("h" + i).Value2.ToString();
                                            dt.Rows.Add(dr);
                                        }
                                    }
                                }



dataGridView1.DataSource = dt;


อันที่จริงก็ต้องขอโทษครับ ที่ผมเอา ท่านเจ้าของกระทู้มาเพราะนึกว่ามันใช้ได้
เลยเป็นเหตุให้ต้องงมหอยกันซักหน่อย 55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 14:15:57 By : lamaka.tor
 


 

No. 47



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

รูปแบบการใช้งาน Microsoft.Office.Interop.Excel แบบบ้านๆ ก็คงประมาณว่า

1. Add ref Microsoft.Office.Interop.Excel
2. ประกาศตัวแปรที่จำเป็น Application Workbook และ Worksheet

Code (C#)
string nameExcel = @"I:\ALS.FH.901.1_2016.xlsx";

            Microsoft.Office.Interop.Excel.Application App= new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook workBook= App.Workbooks.Open(nameExcel, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows);
            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workBook.Worksheets.get_Item(1);
 


3. เรียกใช้งานตามต้องการ

Code (C#)
for (int i = 1; i < 10; i++)
            {
                MessageBox.Show("" + worksheet.Range["B"+i].Value.ToString());
            }

4. ปิดทุกอย่างที่เปิดมา

Code (C#)
worksheet = null;
            workBook.Close();
            App.Quit();


น่าจะประมาณนี้นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 14:27:09 By : lamaka.tor
 


 

No. 48



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 46 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 14:15:57
รายละเอียดของการตอบ ::
มันไช้เป็น เมททอตไม่ได้อะครับ ผมเลยลองใช้ก้ามปูดู แต่ก็ขึ้นเหมือนเดิม เลย อะ
1



ประวัติการแก้ไข
2016-04-21 14:46:20
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 14:45:49 By : phuriwat
 


 

No. 49



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

มันผิดตั้งแต่ "a10"+i แล้ว

ดูดีๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 14:51:28 By : lamaka.tor
 


 

No. 50



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 49 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 14:51:28
รายละเอียดของการตอบ ::
แล้วถ้าเราจะเอาค่าที่เป็นช่องว่าง หรือ null ด้วยอะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 15:27:38 By : phuriwat
 


 

No. 51



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code (C#)
for (int i = 1; i < 100; i++)
            {
                
                MessageBox.Show((worksheet.Range["B" + i].Value==null)?"ว๊าง...ว่าง": worksheet.Range["B" + i].Value.ToString());
                
            }


ก็คงประมาณนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 15:41:34 By : lamaka.tor
 


 

No. 52



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 51 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 15:41:34
รายละเอียดของการตอบ ::
ได้ละครับ ขอบคุณครับ
Code (C#)
    for (int i = 10; i <= 500; i++)
            {
                DataRow dr = dt.NewRow();

                if (worksheet.Range["a" + i].Value == null)
                {
                    dataGridView1.DataSource = dt;
                    MessageBox.Show("Load Success");
                    return;
                }

                dr["1"] = worksheet.Range["a" + i].Value.ToString();
                dr["2] = worksheet.Range["d" + i].Value.ToString();
                dr["3"] = worksheet.Range["e" + i].Value.ToString();
                dr["4"] = worksheet.Range["f" + i].Value.ToString();
                dr["5"] = worksheet.Range["g" + i].Value.ToString();
                dr["6"] = (worksheet.Range["h" + i].Value == null) ? "" : worksheet.Range["h" + i].Value.ToString();
                dt.Rows.Add(dr);
            }




ประวัติการแก้ไข
2016-04-21 16:45:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 16:45:21 By : phuriwat
 


 

No. 53



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

จัดไปอย่าได้เสียครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-21 16:58:20 By : lamaka.tor
 


 

No. 54



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 53 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-04-21 16:58:20
รายละเอียดของการตอบ ::
datagrid ผม มันเรียงตัวเลข เองอะครับ จะปิดไม่ไห้มันเรียงทำไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-22 09:59:28 By : phuriwat
 


 

No. 55



โพสกระทู้ ( 202 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 54 เขียนโดย : phuriwat เมื่อวันที่ 2016-04-22 09:59:28
รายละเอียดของการตอบ ::
ได้ละครับ ขอบคุณครับ ^^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-22 10:09:23 By : phuriwat
 


 

No. 56



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-04-22 10:46:40 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ดึงข้อมูลจาก Excel มาใส่ในแต่ละที่เช่นใน textbox dategridview
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่