2012-10-16 2 views
0

.NET C#에서 Windows 응용 프로그램을 작성 중입니다. Excel 셀 내용을 다른 텍스트 (데이터베이스에서 가져 오는 텍스트)로 대체해야합니다. 내가해야 할 일은 Excel의 값을 데이터베이스의 실제 값으로 대체하는 것입니다. (예 : 'CustomerName'은 'John'으로 바뀌고 'CustomerCompanyName'은 'GE'등으로 바뀝니다.) 또한 일부 값이 없으면 빈 공간이 아래 값으로 겹쳐집니다.C# Windows 응용 프로그램에서 다른 값으로 Excel 셀 값 바꾸기

어떻게 구현할 수 있습니까?

답변

0

에 따라 다릅니다.

워크 시트의 정적 값 일 뿐이며 업데이트 할 때 Excel에서 계산을 수행 할 것으로 예상하지 않으면 OpenXml을 사용하여 스프레드 시트를 편집하십시오.

그렇지 않으면 Office Interopt 또는 일부 타사 Excel 라이브러리를 사용해야합니다.

0

저는 FlexCel을 http://www.tmssoftware.net/ (제휴 없음)에서 사용하고 있습니다. 합리적으로 가격이 책정되고, 빠르며, 모든 관리되는 코드와 개발자는 자신이 무엇에 대해 말하고 있는지, 그리고 쿼리에 매우 민감한지를 알고있는 것 같습니다.

OFfice Interop 라이브러리 IMHO보다 1000 % 우수합니다.

이전에는 Interop 라이브러리를 통해 Excel에 액세스했으며 서버의 경우 ODBC/OLE-DB 드라이버를 사용했지만 항상 어려움이있었습니다.

0

OpenXml을 사용하려는 경우 here은 Excel 문서의 셀 값을 읽는 방법을, 셀에 값을 쓰려면 here을 사용합니다.

사용할 수있는 또 다른 무료 라이브러리는 NPOI입니다. 이 지침은 셀의 데이터를 읽고 쓰고 수정 된 파일을 저장하는 방법에 대한 첫 번째 아이디어를 제공합니다.

 FileStream aFile = new FileStream(@"c:\tmp\foo.xls", FileMode.Open, FileAccess.Read); 
     HSSFWorkbook wb = new HSSFWorkbook(aFile); 
     aFile.Close(); 
     ISheet ws = wb.GetSheet("Worksheet1"); 

     IRow aRow = curSheet.GetRow(aRowIdx); 
     if (aRow == null) 
      aRow = curSheet.CreateRow(aRowIdx); 
     ICell aCell = aRow.GetCell(aColIdx); 
     if (aCell == null) 
      aCell = aRow.CreateCell(aColIdx); 
     string sValue = aCell.StringCellValue; // here the value is read 
     sValue = sValue + " MODIFIED"; 
     aCell.SetCellValue(sValue); // here it is written 
     aFile = new FileStream(@"c:\tmp\bar.xls", FileMode.Create); 
     wb.Write(aFile); 
     aFile.Close(); 
관련 문제