Exemple #1
0
        public static void ToExcel(this DataTable table, string fileName, string sheetName)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentException("파일의 이름은 null이거나 빈 문자열일 수 없습니다.", nameof(fileName));
            }

            SaveFileDialog saveD = new SaveFileDialog();

            saveD.Title    = "저장 경로 선택";
            saveD.FileName = fileName;
            saveD.Filter   = $"Excel 통합문서 (.xlsx)|*.xlsx";

            FileStream fs = null;

            try
            {
                if (saveD.ShowDialog() == true)
                {
                    fs = saveD.OpenFile() as FileStream;

                    ExcelCreater.FromDataTable(table, sheetName, fs);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"xlsx 파일을 저장하는데 실패했습니다...\n\n추가 정보 : {ex.Message}", "오류", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }
        private void ToExcel_Click(object sender, RoutedEventArgs e)
        {
            StudentInfo[] studentInfos = mStudents.ToArray();

            SaveFileDialog saveD = new SaveFileDialog();

            saveD.Filter = $"Excel 통합문서 (.xlsx)|*.xlsx";
            saveD.Title  = "저장 경로 선택";

            string fileName;

            try
            {
                string first  = FirstDateControl.SelectedDate.Value.ToShortDateString();
                string second = SecondDateControl.SelectedDate.Value.ToShortDateString();
                if (first == second)
                {
                    fileName = $"{first} 근태 불량자 명단.xlsx";
                }
                else
                {
                    fileName = $"{first} ~ {second} 근태 불량자 명단.xlsx";
                }
            }
            catch (Exception)
            {
                fileName = "근태 불량자 명단.xlsx";
            }
            saveD.FileName = fileName;

            FileStream fs = null;

            try
            {
                if (saveD.ShowDialog() == true)
                {
                    fs = saveD.OpenFile() as FileStream;

                    DataTable[] tables = new DataTable[studentInfos.Length];
                    string[]    heads  = new string[studentInfos.Length];

                    for (int i = 0; i < studentInfos.Length; ++i)
                    {
                        tables[i] = FaultsToTable(mFaultsDict[studentInfos[i]]);
                        heads[i]  = $"{studentInfos[i].Grade}학년 {studentInfos[i].Class}반 {studentInfos[i].Number}번 {studentInfos[i].Name}";
                    }

                    ExcelCreater.FromDataTableArray(tables, heads, fileName.Substring(0, fileName.IndexOf('.')), fs);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"xlsx 파일을 저장하는데 실패했습니다...\n\n추가 정보 : {ex.Message}", "오류", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }