프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180915 [잡담] 크롬캐스트 4세대 4k 샀는데 이거 전원끄는법없음? 폰뉴비 0 방금 전 1
180914 [잡담] 처음으로 5등급? CPU 써봄 2 익명36 0 8 분 전 23
180913 [컴퓨터] 램 부족하면 그냥 사서 끼우면 되죵? 2 장성규 0 25 분 전 26
180912 [모바일] 이런 충전기 있을까? 1 cw 7 0 29 분 전 25
180911 [컴퓨터] 2070s 에서 rx6800 업글 할만한가요?? 4 나니니오우 0 1 시간 전 42
180910 [잡담] 고스트 오브 쓰시마 amd 최적화 장난 아니네 8 Nei 0 1 시간 전 75
180909 [컴퓨터] 당근에서 중고컴 샀는데 모니터가 안 켜짐.. 4 IlIllllIlllI 0 1 시간 전 42
180908 [컴퓨터] Rtx4060아수스 글카 이거 샀는데 어떰? 1 광어우럭따 0 2 시간 전 59
180907 [컴퓨터] 40인치모니터에 모니터암을 처음 달아보려고 하는데. 11 파라다이스 0 4 시간 전 114
180906 [컴퓨터] 아파트가 고층이면 유선인터넷에 영향이 있나? 8 마리의붕어싸만코 0 5 시간 전 105
180905 [컴퓨터] gpu 드라이버 재시작 오류.. 하림보 0 5 시간 전 60
180904 [컴퓨터] 지프로 더블클릭 개빡쵸... 4 레벨더높아너보다 0 5 시간 전 76
180903 [잡담] 중고본체 15 정도면 팔림? 사양은 내용에 7 zpqls 0 6 시간 전 118
180902 [컴퓨터] 컴터살까..? 3 숨겨왔던너의 0 7 시간 전 66
180901 [컴퓨터] LG27GP850 모니터암 추천좀요 1 초아 0 8 시간 전 83
180900 [컴퓨터] 라데온 rx6800 어떰??? 11 나니니오우 0 9 시간 전 167
180899 [모바일] 안녕하세요 개붕이님들 핸드폰 기변병이 왔습니다.. 1 원조할머니딸기민... 0 10 시간 전 72
180898 [잡담] 안냐세요! 창문형 에어컨 물어보려 왔어요 22 달달한커피 0 10 시간 전 172
180897 [정보] 크롬 탭검색 없애기(2023 ui 되돌리기) oipddgr 0 11 시간 전 141
180896 [컴퓨터] 견적 이정도면 가능함? 14 샤아아즈나블 0 11 시간 전 100