반응형
Excel 파일 생성 시 Column Width를 올바르게 설정하는 방법(Column 속성)
표준 라이브러리를 사용하고 있습니다.
using Excel = Microsoft.Office.Interop.Excel;
Excel을 작성하는 방법은 다음과 같습니다.코드의 극히 일부입니다.
//Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
Excel._Application xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//add data
xlWorkSheet.Cells[1, 1] = "";
xlWorkSheet.Cells[1, 2] = "Student1";
xlWorkSheet.Cells[1, 3] = "Student2";
xlWorkSheet.Cells[1, 4] = "Student3";
문제는 셀 크기가 텍스트 크기보다 작을 수 있다는 점이다.이거 먹어봤어.
Excel.Range chartRange;
chartRange.EntireColumn.ColumnWidth = 31.43;
정상적으로 동작하지만 각 열에 대해 이 속성을 별도로 설정해야 합니다.어떻게 하면 될까요?
저는 보통 VB로 하고 Excel은 VB에 매크로를 기록하기 때문에 더 쉽습니다.그래서 저는 보통 엑셀에 가서 하고 싶은 매크로를 저장합니다.
그게 제가 지금 하고 있는 일이었고, 이 코드를 얻었습니다.
Columns("E:E").ColumnWidth = 17.29;
Range("E3").Interior.Pattern = xlSolid;
Range("E3").Interior.PatternColorIndex = xlAutomatic;
Range("E3").Interior.Color = 65535;
Range("E3").Interior.TintAndShade = 0;
Range("E3").Interior.PatternTintAndShade = 0;
다음과 같은 작업을 수행할 수 있습니다.
xlWorkSheet.Columns[5].ColumnWidth = 18;
마지막 질문에서는 너비를 설정하는 컬럼을 루프합니다.
for (int i = 1; i <= 10; i++) // this will apply it from col 1 to 10
{
xlWorkSheet.Columns[i].ColumnWidth = 18;
}
나는 이렇게 했다:
var xlApp = new Excel.Application();
var xlWorkBook = xlApp.Workbooks.Add(System.Reflection.Missing.Value);
var xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Item[1];
xlWorkSheet.Columns.AutoFit();
이렇게 하면 열은 항상 셀 내부의 텍스트 너비에 맞춥니다.
누군가에게 도움이 되었으면 좋겠다!
다음 링크에서는 셀 스타일을 셀 범위에 적용하는 방법을 설명합니다.http://msdn.microsoft.com/en-us/library/f1hh9fza.aspx
다음 스니펫을 참조:
Microsoft.Office.Tools.Excel.NamedRange rangeStyles =
this.Controls.AddNamedRange(this.Range["A1"], "rangeStyles");
rangeStyles.Value2 = "'Style Test";
rangeStyles.Style = "NewStyle";
rangeStyles.Columns.AutoFit();
내 경우 모든 열 너비를 다음과 같이 변경했습니다.
worksheet.Columns[1].ColumnWidth = 7;
worksheet.Columns[2].ColumnWidth = 15;
worksheet.Columns[3].ColumnWidth = 15;
worksheet.Columns[4].ColumnWidth = 15;
worksheet.Columns[5].ColumnWidth = 18;
worksheet.Columns[6].ColumnWidth = 8;
worksheet.Columns[7].ColumnWidth = 13;
worksheet.Columns[8].ColumnWidth = 17;
worksheet.Columns[9].ColumnWidth = 17;
참고: 워크시트의 열은 Arary와 같이 0부터 시작하는 것이 아니라 1로 시작합니다.
이것을 사용하다
((Excel.Range)oSheet.Cells[1, 1]).EntireColumn.ColumnWidth = 10;
dataGridView의 Excel 열폭:
foreach (DataGridViewColumn co in dataGridView1.Columns)
{ worksheet.Columns[co.Index + 1].ColumnWidth = co.Width/8; }
다음 스니펫 참조: (C#)
private Microsoft.Office.Interop.Excel.Application xla;
Workbook wb;
Worksheet ws;
Range rg;
..........
xla = new Microsoft.Office.Interop.Excel.Application();
wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
ws = (Worksheet)xla.ActiveSheet;
rg = (Range)ws.Cells[1, 2];
rg.ColumnWidth = 10;
rg.Value2 = "Frequency";
rg = (Range)ws.Cells[1, 3];
rg.ColumnWidth = 15;
rg.Value2 = "Impudence";
rg = (Range)ws.Cells[1, 4];
rg.ColumnWidth = 8;
rg.Value2 = "Phase";
언급URL : https://stackoverflow.com/questions/20596364/how-to-properly-set-column-width-upon-creating-excel-file-column-properties
반응형
'programing' 카테고리의 다른 글
| UITextField 텍스트 변경 이벤트 (0) | 2023.04.13 |
|---|---|
| winrm을 사용하여 신뢰할 수 있는 호스트 목록에 둘 이상의 시스템을 추가하는 방법 (0) | 2023.04.13 |
| iOS 7+에서의 Base64 디코딩 (0) | 2023.04.13 |
| Excel - 조건부 형식 지정 - 행 삽입 (0) | 2023.04.13 |
| Xcode에서 사용되지 않는 경고 억제 (0) | 2023.04.13 |