excel 데이터 읽기, 쓰기

4913 단어
실제 프로젝트에서는 excel 표를 조작할 수 없습니다.지금까지 excel 표를 읽었는데, 오늘은 excel 표를 쓰기 위해 애를 썼지만, 마침내 완성되어 후속적으로 사용할 수 있도록 기록되었다.
 
1. excel 테이블의 데이터 읽기
excel 데이터를 읽고 데이터베이스에 가져옵니다. 상식에 따라 데이터셋을 얻을 수 있다면 모든 문제가 쉽게 해결됩니다.다음은 excel 데이터를 읽어서 dataset을 얻을 수 있습니다.
public DataSet ExecleDs(string filenameurl)
        {
            string strConn = "Provider=Microsoft.ACE.OleDb.12.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            DataSet ds = new DataSet();
            string strSql = string.Format("SELECT * FROM [{0}$]", "Sheet1");
            OleDbDataAdapter odda = new OleDbDataAdapter(strSql, conn);
            odda.Fill(ds, "hou");
            return ds;
        }

 
2. excel 테이블에 데이터 쓰기
먼저 두 개의 참조를 추가합니다.
using System.Reflection; using Microsoft.Office.Interop.Excel;
 
1) 초기화:
object missing = Missing .Value ;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();// excel 
 Microsoft.Office.Interop.Excel.Workbook rsBook = excel.Workbooks.Open(fullFileName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);// 
Microsoft.Office.Interop.Excel.Worksheet excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)rsBook.Sheets.get_Item(1);// 
                excelSheet.Activate();// 

 
2) 쓰기 데이터:
for (int i = 1; i < 5; i++)
                {
                    excelSheet.Cells[i, 1] = i;
                    excelSheet.Cells[i, 2] = i + 5;
                    excelSheet.Cells[i, 3] = i + 10;
                }

주: excel 표의 첫 줄, 첫 번째 열은 모두 1로 시작됩니다.
 
3) excel 파일 저장, Application 속성 설정 및 리소스 회수
rsBook.Save();

                excel.DisplayAlerts = false;
                excel.Visible = true;

                excelSheet = null;
                rsBook = null;
                excel = null;

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();

좋은 웹페이지 즐겨찾기