반응형

1. Point

  • 엑셀 셀에 폰트, 색상(color), bold, italic 및 정렬을 적용
  • 스타일에 추가하여 여러 셀에 한번에 적하는 방법

 

반응형

 

 

2. 전체 코드

// 참조 추가
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;

namespace manual_NPOI_excel_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var newFile = @"./dir/newbook.xlsx";

            using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
            {

                IWorkbook workbook = new XSSFWorkbook();

                // 시트 생성
                ISheet sheet1 = workbook.CreateSheet("Sheet1");



                // 셀에 적용할 스타일 생성
                var style1 = workbook.CreateCellStyle();
                style1.FillForegroundColor = HSSFColor.Blue.Index2;
                style1.FillPattern = FillPattern.SolidForeground;
                style1.Alignment = HorizontalAlignment.Center;
                style1.BorderBottom = BorderStyle.Medium;
                style1.BorderRight = BorderStyle.DashDotDot;

				
                // 폰트 설정
                IFont font1 = workbook.CreateFont();
                font1.FontName = "맑은 고딕";
                font1.Color = IndexedColors.Red.Index;
                font1.IsBold = true;
                font1.Underline = FontUnderlineType.Double;
                font1.IsItalic = true;
				
                // 앞서 설정한 셀 스타일에 폰트 추가
                style1.SetFont(font1);
                
                
                // 셀 선택 및 스타일 적용
                var cell2 = sheet1.CreateRow(0).CreateCell(0);
                cell2.CellStyle = style1;
                cell2.SetCellValue(0);



                // 작업 내용 파일에 작성 및 저장
                workbook.Write(fs);
            }
        }
    }
}
반응형
반응형

1. Point

  • 엑셀 셀 스타일을 변수로 만들어 원하는 셀에만 적용
  • 셀 색상 넣기
  • 셀 테두리 설정

 

 

반응형

 

 

2. 전체 코드

// 참조 추가
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;

namespace manual_NPOI_excel_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var newFile = @"./dir/newbook.xlsx";

            using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
            {

                IWorkbook workbook = new XSSFWorkbook();
                // 시트 생성
                ISheet sheet1 = workbook.CreateSheet("Sheet1");


                // 셀에 적용할 스타일 생성
                var style1 = workbook.CreateCellStyle();
                style1.FillForegroundColor = HSSFColor.Blue.Index2;
                style1.FillPattern = FillPattern.SolidForeground;
                style1.Alignment = HorizontalAlignment.Center;
                style1.BorderBottom = BorderStyle.Medium;
                style1.BorderRight = BorderStyle.DashDotDot;

                // 스타일 적용할 셀 선택
                var cell2 = sheet1.CreateRow(0).CreateCell(0);
                cell2.CellStyle = style1;
                cell2.SetCellValue(0);


                // 작업 내용 파일에 작성 및 저장
                workbook.Write(fs);
            }
        }
    }
}
반응형
반응형

1. Point

  • NPOI 엑셀 셀 크기 설정 방법
  • NPOI 엑셀 셀 크기 자동으로 설정 

 

 

 

반응형

 

 

2. 전체 코드

// 참조 추가
using System.IO;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;

namespace manual_NPOI_excel_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var newFile = @"./dir/newbook.xlsx";

            using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write))
            {

                IWorkbook workbook = new XSSFWorkbook();
                // 시트 생성
                ISheet sheet1 = workbook.CreateSheet("Sheet1");

				
                IRow row = sheet1.CreateRow(0);
                // 셀 높이 (point 단위)
                row.Height = 30 * 80;
                row.CreateCell(0).SetCellValue("this is content");
                // Column 크기 자동
                sheet1.AutoSizeColumn(0);


                // 작업 내용 파일에 작성 및 저장
                workbook.Write(fs);
            }
        }
    }
}
반응형
반응형

1. Point

  • 폴더 / 파일 삭제하기 (delete)
  • 폴더 / 파일 복사 - 붙여넣기 (copy)
  • 폴더 / 파일 잘라내기 - 붙여넣기 (move)

 

반응형

 

 

2. 전체 코드

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO;

namespace manual_file_MoveCopyDelete
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo s_path = new DirectoryInfo(@".\test_dir");
            DirectoryInfo t_path = new DirectoryInfo(@".\test_dir2");

            DirectoryInfo s_path2 = new DirectoryInfo(@".\test_dir3");
            DirectoryInfo t_path2 = new DirectoryInfo(@".\test_dir4");

			// 폴더 4개 생성
            s_path.Create();
            t_path.Create();
            s_path2.Create();
            t_path2.Create();

            // 파일 유무 확인
            // 'Directory.GetCurrentDirectory()' 현재 실행중인 프로그램의 위치 반환
            FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + "/test_dir/test2.txt");
            if (!file.Exists)
            {
                FileStream fs = file.Create();
                fs.Close();
            }


            // 파일 복사
            // test_dir의 test2.txt를 t_path경로로 복사한다
            // true = 덮어쓰기 허용 여부
            // t_path 뒤의 이름을 변경하여 복사 하면서 파일 이름 변경도 한번에 가능하다.
            System.IO.File.Copy(s_path.ToString() + @"\test2.txt", t_path.ToString() + @"\test_copy.txt", true);
            System.IO.File.Copy(s_path.ToString() + @"\test2.txt", s_path2.ToString() + @"\test_copy.txt", true);

            // 파일 이동
            // t_path 뒤의 이름을 변경하여 복사 하면서 파일 이름 변경도 한번에 가능하다.

            System.IO.File.Move(s_path.ToString() + @"\test2.txt", t_path.ToString() + @"\test_move.txt");


            // 폴더 복사
            // test_dir3번 폴더가 test_dir4번 폴더 아래 dir폴더로 이름이 바뀌어 이동(move)
            System.IO.Directory.Move(s_path2.ToString(), t_path2.ToString() + @"/dir");

            // 폴더 삭제
            // true = 하위 폴더/파일 모두 삭제 여부
            System.IO.Directory.Delete(t_path2.ToString(), true);
        }
    }
}
반응형
반응형

1. Point

  • 텍스트 파일에 내용 쓰기
  • 내용 덮어쓰기
  • 내용 추가하기 (덛붙여쓰기)

 

 

반응형

 

 

2. 전체 코드

using System;

using System.IO;
using System.Diagnostics;

namespace manual_txt_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 파일 경로
            FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt");


            // 파일 내용 저장
            FileStream fs2 = file.OpenWrite();
            TextWriter tw = new StreamWriter(fs2);

            // 파일 안에 있는 내용 지우고 아래 내용만 저장
            // tw가 선언된 뒤부터 추가한 내용들만 저장 (선언전에 있던 내용은 삭제)
            for (int i = 0; i < 100; i++)
            {
            	// 아래 내용이 100번 써진다
                tw.Write("\ntest1" + i);
            }
            // 꼭 Close()해줘야 다른 곳에서 파일 엑세스 에러가 발생하지 않는다
            tw.Close();
            fs2.Close();


            // 파일 내용 뒤에 추가하여 내용 저장
            // 따로 세이브 명령이 필요 없음
            //// 10만번 기준 8~9초 소요 (8300 ~ 9400 ms)
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 100000; i++)
            {
                File.AppendAllText(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt", "\ntest\n1234567890\n1234567890\n1234567890" + i);
            }
            string sw_time = sw.Elapsed.TotalMilliseconds.ToString();
            sw.Stop();
            Console.WriteLine(sw_time);

        }
    }
}
반응형
반응형

1. Point

  • 폴더 유무 확인 방법
  • 파일 유무 확인 방법

[C# 텍스트 파일]  01. 폴더/파일 유무 확인 방법

반응형

 

 

2. 전체 코드

using System;
using System.IO;

namespace manual_txt_IO
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 폴더 경로 설정
            DirectoryInfo d_info = new DirectoryInfo(@"./test_dir2");

            // 폴더 유무 확인
            if (!d_info.Exists)
            {
                // 폴더가 없는 경우 폴더 생성
                d_info.Create();
                // 폴더 전체경로(절대경로) 출력
                Console.WriteLine(d_info.FullName.ToString());
            }


            // 파일 유무 확인
            // 'Directory.GetCurrentDirectory()' 현재 실행중인 프로그램의 위치 반환
            FileInfo file = new FileInfo(Directory.GetCurrentDirectory() + "/test_dir2/test2.txt");
            if (!file.Exists)
            {
                FileStream fs = file.Create();
                fs.Close();
            }
        }
    }
}
반응형

+ Recent posts