엘엠소프트 님, 안녕하세요.
메시어스입니다.
필터가 적용된 채로 Excel로 내보내기 하시려면 다음과 같이 SaveExcel 메서드의 옵션으로 ExcelSaveFlags.SaveAsFiltered를 넣어주시면 됩니다. 이 경우 적용한 필터 조건이 유지된 상태로 Excel로 저장됩니다.
fpSpread1.SaveExcel("Excel.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered);
혹은 필터 조건에 해당하는 행만 Excel로 내보내고, 필터 조건에 부합하지 않는 행은 Excel로 내보내지 않고 싶으신 것일까요?
만약 그렇다면 필터된 결과를 다른 임의의 스프레드에 복사/붙여넣기 한 후, 임의의 스프레드를 엑셀로 내보내기 함으로써 원하시는 결과를 얻으실 수 있습니다.
이때, 필터된 시트를 복사하는 ClipboardCopy 메서드의 옵션으로 ClipboardCopyOptions.AsStringSkipHidden를 적용하여, 숨겨진 셀은 복사하지 않고 필터 조건에 부합하는 셀만 복사할 수 있습니다.
아래 샘플 코드를 개발 시 참고 부탁드립니다.
private void button1_Click(object sender, EventArgs e)
{
FarPoint.Win.Spread.FpSpread tempSpread = new FarPoint.Win.Spread.FpSpread(FarPoint.Win.Spread.LegacyBehaviors.None);
tempSpread.Sheets.Count = 1;
fpSpread1.Sheets[0].ClearSelection();
fpSpread1.Sheets[0].AddSelection(0, 0, fpSpread1.Sheets[0].RowCount, fpSpread1.Sheets[0].ColumnCount);
fpSpread1.Sheets[0].ClipboardCopy(FarPoint.Win.Spread.ClipboardCopyOptions.AsStringSkipHidden);
tempSpread.Sheets[0].ClipboardPaste();
tempSpread.Sheets[0].ClearSelection();
fpSpread1.Sheets[0].ClearSelection();
tempSpread.SaveExcel("Filtered.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat | FarPoint.Excel.ExcelSaveFlags.SaveAsViewed);
}
감사합니다.
메시어스 드림