프로그래밍

C# / Winform에서 프로그램 실행시 절대 경로에 있는 Excel 파일 읽는 코드

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 System.IO;
using ExcelDataReader;

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

        DataTableCollection tablecollection;
        DataTable dt;
        
        private void Form1_Load(object sender, EventArgs e)
        {
            LoadExcelData();
        }

        private void LoadExcelData()
        {
            string filePath = @"C:\Testfile.xlsx";
            using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
            {
                //if (Path.GetExtension(filePath).ToUpper() == ".XLS" || Path.GetExtension(filePath).ToUpper() == ".XLSX")
                //{
                    using (var reader = ExcelReaderFactory.CreateReader(stream))
                    {
                        var result = reader.AsDataSet(new ExcelDataSetConfiguration()
                        {
                            ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
                            {
                                EmptyColumnNamePrefix = "Column",   // "Column" : 열 이름이 비어있는 경우에 대비하여 열 이름의 접두사를 "Column"으로 설정합니다. 예를 들어, 열 이름이 없는 첫 번째 열은 "Column1"이라는 이름을 갖게 됩니다.
                                UseHeaderRow = true                 //  true : 첫 번째 행을 열 이름(header row)으로 사용하도록 설정합니다. 이렇게 하면 첫 번째 행의 각 셀의 값이 해당 열의 이름이 됩니다. 만약 이를 false로 설정하면, 열 이름은 자동으로 "Column1", "Column2", 등으로 지정됩니다.
                            }
                        });
                        dt = result.Tables[0];
                        dataGridView1.DataSource = dt;
                        tablecollection = result.Tables;
                    }
                //}
            }
        }
    }
}

 

ExcelDataReader라는 Library 썼음

실행은 되는데, DataGridView에 아무것도 안보여 ,,, 

 

대화상자로 파일 지정해서 여는건 되는데, 왜 절대경로로 지정하는건 파일을 못 읽을까 ㅠㅠ

 

조언 부탁드립니다


 

9개의 댓글

ye
2023.11.04

대화상자로 파일 지정한건 어떻게 했는데? OpenFIleDialog 열어서 지정한값 string filePath 할당해서?

0
2023.11.04
@ye

https://m.blog.naver.com/kimmingul/221866465945

1
ye
2023.11.04
@Buck

dataGridView1이 실제로 사용중인 control 맞음? 디자이너에서 이름 다시 확인해봐

0
2023.11.04
@ye

이 분 예제 참고했습니다. openFileDialog.FileName의 속성을 그대로 사용하셨어요.

 

using (var stream = File.Open(openFileDialog1.FileName, FileMode.Open, FileAccess.Read))

0
ye
2023.11.04
@Buck

일단 저는 너무 잘돼서 문제네요 디자이너에 컨트롤들 제대로 배치했는지 다시 한번 확인해보세요

form1.designer.cs 파일 참고해보시면 혹시 내가 DataGridView 여러개를 생성해놓고 (디자이너에서 겹친채로 배치 해놨다거나) 잘못 지정해서 datatable을 할당하지 않았는지 체크 해보시는게 좋을듯

0
2023.11.04
@ye

제 코드 복붙해서 실행 성공하셨다구요 ?

0
2023.11.04

dialog로 연 파일 주소랑 하드코딩한 주소랑 동일한지 확인해보셈

0
2023.11.04

아 Form1_Load에 대한 이벤트를 만들지 않고 코드만 긁어와서 그런거 였습니다,,

0
ye
2023.11.04
@Buck

-__-!!!!!!!!!!!!!!! 제가 디자이너 코드 보랬쬬ㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180896 [잡담] 갤탭s9 fe+ 가격 괜찮음? 좃같은건못참음 0 10 분 전 3
180895 [견적] 와이프 결재 올리기 전 스펙 봐주세오 1 흐린눈 0 17 분 전 13
180894 [프로그래밍] Aws 람다에 파이썬 올려서 결과 받아오는데 4 아르피쥐 0 2 시간 전 105
180893 [잡담] 맥 업그레이드 하면 어도비 오류좀 줄어들까?? fhana 0 4 시간 전 38
180892 [컴퓨터] 아오 14900k 진짜 문제 있는거임? 16 너가전부옳아 0 8 시간 전 233
180891 [컴퓨터] 아수스 글카 as 어떰요? 5 광어우럭따 0 10 시간 전 135
180890 [컴퓨터] 이정도사양이면 팰월드풀옵션할수있나요? 3 정신이상함 0 10 시간 전 119
180889 [컴퓨터] 쉐도우플레이 버그 1 Mtrap 0 11 시간 전 46
180888 [잡담] 책상 다 꾸몄당 6 로스앤젤리스요정 1 11 시간 전 146
180887 [잡담] 독거미 F87 Pro 도착 2 필립스 0 12 시간 전 180
180886 [잡담] 직구 어캐 됐어여?? 15 뀨르륵륵 0 12 시간 전 142
180885 [컴퓨터] cpu만 바꿀지 중고컴 적당한 거 구매할지 고민중인데 뭐가 나... 7 IlIllllIlllI 0 13 시간 전 100
180884 [견적] 조립PC 견적 봐주세요.. 4 하몽 0 13 시간 전 88
180883 [컴퓨터] F99 독거미 그레이축 후기 2 가닥인생 0 15 시간 전 202
180882 [정보] 갤럭시탭s9 fe+ 가격 괜차나? 5 좃같은건못참음 0 16 시간 전 154
180881 [모바일] ios 잘 아는 개붕님 계신가요 5 바른자세 0 16 시간 전 180
180880 [잡담] 내일 웨스톤 오디오 마하60, 슈어 SE846 GEN2 청음하러 간다 ... 3 참잘했어요 0 16 시간 전 34
180879 [컴퓨터] 혹시 유튜브 홈화면 안나오는거 해결방법 아시는 분 계신가요 5 3541201 0 16 시간 전 83
180878 [컴퓨터] 노트북삿워요요 3 숨겨왔던너의 0 16 시간 전 70
180877 [모바일] 다시 아이폰으로 돌아가야하나?.... 노보케인 0 17 시간 전 127