2017-05-03 1 views
0

파일을 엑셀했습니다. 액세스해야하며 텍스트의 일부를 바꾸고 변경된 파일을 다운로드 할 수 있습니다. 하지만 변경 사항을 저장할 수 없으며 항상 서버에 버전을 보관해야합니다.읽기 Excel에서 웹 C# 응용 프로그램의 텍스트 조각을 검색하고 바꿉니다.

여러 번 검색했지만 파일을 변경하고 변경 사항을 저장할 수만 있습니다.

아래 링크로 해결하려고했지만 파일을 검색하고 변경할 수는 있지만 변경 사항을 다운로드하고 중지하는 방법을 모르겠습니다.

Find and replace text in Excel using C#

는 메모리 스트림으로 파일을 읽고 당신에게

답변

1

대단히 감사합니다. 변경 사항을 수행하여 바이트 배열에 기록하십시오. bytesInstream 바이트 배열을 사용하여 원본 파일을 변경하지 않고 그대로 유지합니다.

byte[] byteArray = File.ReadAllBytes("excelFile.xlsx"); 
using (MemoryStream ms = new MemoryStream()) 
{ 
    ms.Write(byteArray, 0, (int)byteArray.Length); 
    using (SpreadsheetDocument doc = SpreadsheetDocument.Open(ms, true)) 
    { 
     // Do work here 
    } 
    // Convert it to byte array 
    byte[] bytesInStream = ms.ToArray(); 
} 

변경 사항을 적용하기 위해 openxml을 사용한다고 가정했습니다.

+0

openxml을 사용하여 Excel에서 텍스트를 바꾸려면 [this] (http://stackoverflow.com/questions/33719193/openxml-excel-how-to-change-value-of-a-cell-when- value-in-sharedstringtable) 게시물을 사용합니다. 공유 문자열 테이블에는 셀에 삽입 된 텍스트 만 포함됩니다. 텍스트 상자, 차트, 워드 아트에있는 텍스트를 변경해야하는 경우 도면 xml 아래에서 가져와야합니다. – FortyTwo

+0

고맙습니다. 완벽하게 작동했습니다. –

관련 문제