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에 아무것도 안보여 ,,,
대화상자로 파일 지정해서 여는건 되는데, 왜 절대경로로 지정하는건 파일을 못 읽을까 ㅠㅠ
조언 부탁드립니다
ye
대화상자로 파일 지정한건 어떻게 했는데? OpenFIleDialog 열어서 지정한값 string filePath 할당해서?
Buck
https://m.blog.naver.com/kimmingul/221866465945
ye
dataGridView1이 실제로 사용중인 control 맞음? 디자이너에서 이름 다시 확인해봐
Buck
이 분 예제 참고했습니다. openFileDialog.FileName의 속성을 그대로 사용하셨어요.
using (var stream = File.Open(openFileDialog1.FileName, FileMode.Open, FileAccess.Read))
ye
일단 저는 너무 잘돼서 문제네요 디자이너에 컨트롤들 제대로 배치했는지 다시 한번 확인해보세요
form1.designer.cs 파일 참고해보시면 혹시 내가 DataGridView 여러개를 생성해놓고 (디자이너에서 겹친채로 배치 해놨다거나) 잘못 지정해서 datatable을 할당하지 않았는지 체크 해보시는게 좋을듯
Buck
제 코드 복붙해서 실행 성공하셨다구요 ?
6974
dialog로 연 파일 주소랑 하드코딩한 주소랑 동일한지 확인해보셈
Buck
아 Form1_Load에 대한 이벤트를 만들지 않고 코드만 긁어와서 그런거 였습니다,,
ye
-__-!!!!!!!!!!!!!!! 제가 디자이너 코드 보랬쬬ㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛㅛ