un-revert
This commit is contained in:
@@ -841,6 +841,94 @@ namespace DwgExtractorManual.Models
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DWG 전용 매핑 워크북을 생성하고 저장합니다 (PDF 컬럼 제외).
|
||||
/// </summary>
|
||||
/// <param name="resultFolderPath">결과 파일 저장 폴더 경로</param>
|
||||
public void SaveDwgOnlyMappingWorkbook(string resultFolderPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
|
||||
string savePath = Path.Combine(resultFolderPath, $"{timestamp}_DwgOnly_Mapping.xlsx");
|
||||
|
||||
Debug.WriteLine($"[DEBUG] DWG 전용 매핑 워크북 생성 시작: {savePath}");
|
||||
|
||||
// Excel 애플리케이션 초기화 확인
|
||||
if (excelApplication == null)
|
||||
{
|
||||
excelApplication = new Excel.Application();
|
||||
excelApplication.Visible = false;
|
||||
Debug.WriteLine("[DEBUG] 새 Excel 애플리케이션 생성됨 (DWG 전용)");
|
||||
}
|
||||
|
||||
// DWG 전용 워크북 생성
|
||||
var dwgOnlyWorkbook = excelApplication.Workbooks.Add();
|
||||
var dwgOnlyWorksheet = (Excel.Worksheet)dwgOnlyWorkbook.Worksheets[1];
|
||||
dwgOnlyWorksheet.Name = "DWG Mapping Data";
|
||||
|
||||
// 헤더 생성 (PDF Value 컬럼 제외)
|
||||
dwgOnlyWorksheet.Cells[1, 1] = "파일명";
|
||||
dwgOnlyWorksheet.Cells[1, 2] = "Map Key";
|
||||
dwgOnlyWorksheet.Cells[1, 3] = "AI Label";
|
||||
dwgOnlyWorksheet.Cells[1, 4] = "DWG Tag";
|
||||
dwgOnlyWorksheet.Cells[1, 5] = "DWG Value";
|
||||
|
||||
// 헤더 스타일 적용
|
||||
var headerRange = dwgOnlyWorksheet.Range["A1:E1"];
|
||||
headerRange.Font.Bold = true;
|
||||
headerRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
|
||||
headerRange.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
|
||||
|
||||
// 데이터 입력
|
||||
int row = 2;
|
||||
foreach (var fileEntry in FileToMapkeyToLabelTagValuePdf)
|
||||
{
|
||||
string fileName = fileEntry.Key;
|
||||
foreach (var mapEntry in fileEntry.Value)
|
||||
{
|
||||
string mapKey = mapEntry.Key;
|
||||
var (aiLabel, dwgTag, dwgValue, pdfValue) = mapEntry.Value;
|
||||
|
||||
dwgOnlyWorksheet.Cells[row, 1] = fileName;
|
||||
dwgOnlyWorksheet.Cells[row, 2] = mapKey;
|
||||
dwgOnlyWorksheet.Cells[row, 3] = aiLabel;
|
||||
dwgOnlyWorksheet.Cells[row, 4] = dwgTag;
|
||||
dwgOnlyWorksheet.Cells[row, 5] = dwgValue;
|
||||
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
// 컬럼 자동 크기 조정
|
||||
dwgOnlyWorksheet.Columns.AutoFit();
|
||||
|
||||
// 파일 저장
|
||||
string directory = Path.GetDirectoryName(savePath);
|
||||
if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
|
||||
{
|
||||
Directory.CreateDirectory(directory);
|
||||
}
|
||||
|
||||
dwgOnlyWorkbook.SaveAs(savePath,
|
||||
FileFormat: Excel.XlFileFormat.xlOpenXMLWorkbook,
|
||||
AccessMode: Excel.XlSaveAsAccessMode.xlNoChange);
|
||||
|
||||
Debug.WriteLine($"✅ DWG 전용 매핑 워크북 저장 완료: {Path.GetFileName(savePath)}");
|
||||
|
||||
// 워크북 정리
|
||||
dwgOnlyWorkbook.Close(false);
|
||||
System.Runtime.InteropServices.Marshal.ReleaseComObject(dwgOnlyWorksheet);
|
||||
System.Runtime.InteropServices.Marshal.ReleaseComObject(dwgOnlyWorkbook);
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Debug.WriteLine($"❌ DWG 전용 매핑 워크북 저장 중 오류: {ex.Message}");
|
||||
Debug.WriteLine($" 스택 트레이스: {ex.StackTrace}");
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 Excel 워크북을 지정된 경로에 저장하고 Excel 애플리케이션을 종료합니다.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user