프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5702 [프로그래밍] Aws 람다에 파이썬 올려서 결과 받아오는데 11 아르피쥐 0 6 시간 전 159
5701 [프로그래밍] 마리아DB mediumtext 그냥 쓰고 싶은데 19 잉텔 0 21 시간 전 149
5700 [프로그래밍] 안드로이드 씹뉴비 질문이요 1 집에가게해줘 0 22 시간 전 86
5699 [프로그래밍] c언어 7년했는데 이런게 되는거 처음알았음.. 4 케로로중사 0 2 일 전 650
5698 [프로그래밍] 파이썬 1도 모르는데 GPT로 프로그램 뚝딱 만듬 2 푸르딩딩 1 5 일 전 590
5697 [프로그래밍] 담주 면접잡혔는데 8 삐라루꾸 0 5 일 전 357
5696 [프로그래밍] 아두이노 부트로더를 구웠는데.. 4 렙이말한다ㅡ니가옳다 0 6 일 전 216
5695 [프로그래밍] IOS 개발자 있나여? 1 g4eng 0 8 일 전 236
5694 [프로그래밍] 시스템 디자인 인터뷰 준비 도움좀!!! 1 Nognhyup 0 9 일 전 186
5693 [프로그래밍] 최근에 vscode 쓴 사람 도움! 3 172102 0 10 일 전 436
5692 [프로그래밍] 책을 또 사버리고 말았다... 1 찰나생멸 2 10 일 전 425
5691 [프로그래밍] 윈도우 부팅화면 봐주실분 1 바나나맛두부 0 13 일 전 233
5690 [프로그래밍] 아 시발 퇴사마렵다 9 인간지표 0 14 일 전 589
5689 [프로그래밍] C#이 ㅈ사기 언어인 이유 19 ye 6 14 일 전 1168
5688 [프로그래밍] 요즘 모바일 개발은 어떤 걸 사용하나요? 14 커피좋아용 0 16 일 전 532
5687 [프로그래밍] 취준생 안드로이드 팀플 주제 머할까요... 8 조강현 0 17 일 전 287
5686 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 9 잠적자 0 18 일 전 604
5685 [프로그래밍] 토이프로젝트 주제 선정 3 개드립눈팅1세대 0 18 일 전 281
5684 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 21 일 전 557
5683 [프로그래밍] 반도체 장비 업계인 있음? 9 캡틴띠모 0 21 일 전 430