728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
private string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
public void ReadExcel(string filePath, string fileExtension)
{
string connectionString = string.Empty;
string sheetName = string.Empty;
// 확장자로 구분하여 커넥션 스트링을 가져옮
switch (fileExtension)
{
case ".xls": //Excel 97-03
connectionString = string.Format(Excel03ConString, filePath, "YES");
break;
case ".xlsx": //Excel 07
connectionString = string.Format(Excel07ConString, filePath, "YES");
break;
}
// 첫 번째 시트의 이름을 가져옮
using (OleDbConnection con = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = con;
con.Open();
System.Data.DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
con.Close();
}
}
// 첫 번째 시트의 데이타를 읽어서 datagridview 에 보이게 함.
using (OleDbConnection con = new OleDbConnection(connectionString))
{
using (OleDbCommand cmd = new OleDbCommand())
{
using (OleDbDataAdapter oda = new OleDbDataAdapter())
{
DataTable dt = new DataTable();
cmd.CommandText = $"SELECT * FROM [{sheetName}]";
cmd.Connection = con;
con.Open();
oda.SelectCommand = cmd;
oda.Fill(dt);
con.Close();
//Populate DataGridView.
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].Width = 150;
}
}
}
}
|
cs |
728x90
반응형
'IT > C#' 카테고리의 다른 글
[C#] Image Merge Program 이미지 합치기 프로그램 만들기 (feat. 차은우❤) (4) | 2023.02.06 |
---|---|
[C#] Math Class 주로 쓰이는 Method 정리 (0) | 2023.02.03 |
[C#] Drag and Drop으로 Winform에 파일 넣기 (0) | 2023.01.13 |
[C#] Double Trackbar User Control 만들기 (2) | 2023.01.12 |
[C#] Form UI Control 사이즈 일괄 변경하기 FHD to UHD(4K) (0) | 2022.12.29 |