프로그래밍

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
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5694 [프로그래밍] 아 시발 퇴사마렵다 9 인간지표 0 19 시간 전 279
5693 [프로그래밍] C#이 ㅈ사기 언어인 이유 17 ye 4 1 일 전 779
5692 [프로그래밍] 요즘 모바일 개발은 어떤 걸 사용하나요? 13 커피좋아용 0 3 일 전 334
5691 [프로그래밍] 취준생 안드로이드 팀플 주제 머할까요... 8 조강현 0 4 일 전 230
5690 [프로그래밍] 공통코드테이블은 대체 왜 만드냐 9 잠적자 0 5 일 전 430
5689 [프로그래밍] 토이프로젝트 주제 선정 3 개드립눈팅1세대 0 5 일 전 230
5688 [프로그래밍] 엥 구글 플러터 유기각 재는거임?? 4 최수연 0 7 일 전 361
5687 [프로그래밍] 반도체 장비 업계인 있음? 9 캡틴띠모 0 8 일 전 296
5686 [프로그래밍] 안드로이드 책 추천좀 6 집에가게해줘 0 9 일 전 159
5685 [프로그래밍] 폰 스크리닝 해 본 사람 있어? 3 무지개빛푸딩 0 9 일 전 395
5684 [프로그래밍] jsp 트리메뉴 만들고있는데 구상한게가능한지 의견좀물어볼께 11 평택국 0 10 일 전 176
5683 [프로그래밍] JPA 도와줘어억 ㅠ 10 모그리또 0 10 일 전 266
5682 [프로그래밍] 의사는 뽑는 인원 제한하는데 부캠은 왜 제한 안 할까 5 조강현 0 12 일 전 381
5681 [프로그래밍] 그 혹시 게임쪽 종사자 있음? 17 god79ii 0 16 일 전 639
5680 [프로그래밍] 코린이 ㅅㅂ 뭐가 문젠지 모르겠어요 9 집에가게해줘 0 16 일 전 464
5679 [프로그래밍] Dear Imgui 라고 아시나요? 2 년째모쏠 0 16 일 전 250
5678 [프로그래밍] 현업개발자분들 주말엔 편하게 쉴수있나요? 10 키로 0 17 일 전 888
5677 [프로그래밍] 무엇이든 물어보세요. 28 변현제 0 19 일 전 423
5676 [프로그래밍] 개발자보단 엔지니어가 취업이 잘됨 5 iillillill 2 20 일 전 768
5675 [프로그래밍] 프론트엔드 개발자 연봉 1억 넘는 사람 있어? 13 잠적자 0 20 일 전 668