! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

spread 를 엑셀로 내보내기때에 시트별로 하는 방법 문의드립니다. > Q&A | 토론

본문 바로가기

Spread.NET

Q&A | 토론

WinForms윈폼 spread 를 엑셀로 내보내기때에 시트별로 하는 방법 문의드립니다.

페이지 정보

작성자 이원규 작성일 2023-06-20 09:19 조회 328회 댓글 0건
제품 버전 : 11.40.20177.0

본문


안녕하세요. 


spread 를 엑셀로 내보내기를 할때에 현재 아래와 같이 하나의 파일로 

내보내기를 하고 있습니다. 하나의 엑셀파일에 spread 2개를 시트별로 나눠서 

저장할수 있는 방법을 확인 부탁드립니다. 



예를 들어 , fpspeard1 는 sheet1에 , fpspeard2 는  sheet2에 저장을 하고 싶습니다. 

 

SaveFileDialog mDlg = new SaveFileDialog();
          fpSpread1.Sheets[0].Protect = false;
          
          mDlg.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
          mDlg.InitialDirectory = "C:\\Users\\Administrator\\Desktop\\";
          mDlg.FileName = this.Text + "_" + DateTime.Now.ToString("yyyyMMddHHmmss");
          mDlg.FilterIndex = 1;
 
          if (mDlg.ShowDialog() == DialogResult.OK)
          {
              try
              {
                  int rowCnt = fpSpread1.ActiveSheet.RowCount;
                  if (fpSpread1.ActiveSheet.RowCount <= 4) fpSpread1.ActiveSheet.RowCount = 5;
 
 
                      fpSpread1.SaveExcel
                      (
                          mDlg.FileName,
                          FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat
                          | FarPoint.Excel.ExcelSaveFlags.UseCustomPaletteForColorApproximations
                          | FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders
                          | FarPoint.Excel.ExcelSaveFlags.SaveAsFiltered
                          | FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
                      );
 
 
                  fpSpread1.ActiveSheet.RowCount = rowCnt;
 
                  if (DialogResult.OK == ComLib.Confirm_MessageBox("바로 여시겠습니까?""Do you want to open right?"))
                  {
                      Process process = new Process();
                      process.StartInfo.FileName = mDlg.FileName.ToString();
                      process.Start();
                  }
              }
              catch (Exception xe)
              {
                  MessageBox.Show(xe.Message + "\n" + xe.Data);
 
 
              }  
 
          }
 
          fpSpread1.Sheets[0].Protect = true;
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: spread 를 엑셀로 내보내기때에 시트별로 하는 방법 문의드립니다.

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK써니 작성일 2023-06-21 16:08 댓글 1건

본문

이원규 님, 안녕하세요.

그레이프시티입니다.


아쉽게도 Spread.NET에서는 두 개의 스프레드를 하나의 엑셀 파일로 저장하는 기능이 지원되지 않습니다.


다만, 한 스프레드의 내용을 다른 스프레드에 복사/붙여넣기 한 후 엑셀 파일로 저장하는 방법을 통해, 원하시는 기능을 구현하실 수 있습니다. 아래 샘플 코드를 개발 시 참고 부탁 드립니다.

// 1. fpSpread1에 새로운 시트를 추가합니다.
fpSpread1.Sheets.Count += 1;

// 2. fpSpread2.Sheets[0]의 내용을 fpSpread1의 마지막 시트에 복사/붙여넣기 합니다.
FarPoint.Win.Spread.Model.CellRange cellRange = new FarPoint.Win.Spread.Model.CellRange(0, 0, fpSpread2.Sheets[0].RowCount, fpSpread2.Sheets[0].ColumnCount);
fpSpread2.Sheets[0].ClipboardCopy(cellRange, FarPoint.Win.Spread.ClipboardCopyOptions.All);
fpSpread1.Sheets[fpSpread1.Sheets.Count - 1].ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.All);
fpSpread1.Sheets[fpSpread1.Sheets.Count - 1].ClearSelection();

// 3. fpSpread1을 Excel 파일로 저장합니다.
SaveFileDialog mDlg = new SaveFileDialog();
fpSpread1.Sheets[0].Protect = false;

// ... 작성하신 코드를 삽입합니다.

fpSpread1.Sheets[0].Protect = true;

// 4. fpSpread1에서 마지막 시트를 제거합니다.
fpSpread1.Sheets.Remove(fpSpread1.Sheets[fpSpread1.Sheets.Count - 1]);


감사합니다.

그레이프시티 드림

댓글목록

이원규님의 댓글

이원규 작성일

넵 알겠습니다. 확인 감사합니다. 

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.