2013-07-11 4 views
4

영어로 죄송합니다. 나는 도서관 Epplus를 사용했고, 나는 그것을 정말로 좋아한다. 하지만 문제가 있습니다 : Out of Memory. 무슨 일이 있어도 대용량의 데이터를 작성해야합니다. Excel 파일의 끝 부분에 추가 할 수 있음을 알고 싶습니다. 모두 메모리에 저장되어 있지 않습니다. 또는 여러 개의 파일을 만든 다음 하나의 파일로 연결하십시오. 미리 감사드립니다.Epplus, Out of memory

+0

응용 프로그램 32 또는 64 비트인가를 사용하고 계십니까? 64 비트는 작업 할 수있는 더 큰 주소 공간을 제공하고 스왑 파일을 사용할 수있게합니다. – user1937198

+1

응용 프로그램이 64 일 경우 각 전달 일에 점점 더 많은 데이터가되기 때문에 어떻게 도움이되는지 이해할 수 없습니다. 그리고 그 여분의 몇 메가 바이트는 며칠 동안의 해결책입니다. – user2572457

+0

64 비트는 로컬 주소 공간에서 최대 8TB를 제공하며 많은 양의 데이터를 얻는다면 아마도 데이터베이스에 저장하려고합니다. – user1937198

답변

0

1) 데이터베이스 에서 데이터를 검색 할 경우 다음 삭제를 response.writefile를 사용, 그것은 웹 환경 인 경우 (그 후 다 삭제, 임시 파일에 엑셀을 쓰기) 대신에 데이터 테이블

2의 DataReader를를 사용 그것은)

3) 먼저 헤더를 쓰고,이 같은 뭔가를 데이터를 추가 (내 휴대폰이 형에 대한)

var pck = new ExcelPackage(); 
var ws = pck.AddSheet("sheet1"); 
//write header here 
pck.saveas(fileinfo); 
pck.dispose(); // not sure if function existed 
pck= new excelpage(fileino.fullname); 
ws = pck.worksheets[1]; 
var rowIndex =0; 
while (reader.read()) 
{ 
    if (++rowindex % 100000 == 0) 
    { 
     // save and re-open 
    } 
    //write row here 
} 
pck.save(); 
//dispose/send file/delete file etc