예제 #1
0
 private static void AutoSizeColumns(ExcelNPOIWriter exObj, DataTable tbl, string sheetName)
 {
     for (int i = 0; i <= tbl.Columns.Count; i++)
     {
         exObj.AutoSizeColumn(i, sheetName);
     }
 }
예제 #2
0
        private static void GenerateExcel(DataTable _dtFinal, string _savePath)
        {
            ExcelNPOIWriter excelObj = new ExcelNPOIWriter();

            excelObj.CreateWorksheet("Sheet1");
            excelObj.WriteData(_dtFinal, "Sheet1", true, 4);
            AutoSizeColumns(excelObj, _dtFinal, "Sheet1");
            HSSFSheet sheet1 = excelObj.GetWorksheet("Sheet1");

            sheet1.PrintSetup.Landscape = true;

            //styles
            //alignment
            excelObj.createStyle("Headers");
            excelObj.setAlignment("Headers", HorizontalAlignment.Center);
            excelObj.setBorders("Headers", BorderStyle.Medium);
            excelObj.setFont("Headers", true, HSSFColor.DarkBlue.Index);
            excelObj.setShrinkToFit("Headers", true);
            excelObj.setFillForeground("Headers", HSSFColor.Grey25Percent.Index, FillPattern.SolidForeground);

            try
            {
                for (int i = 0; i < _dtFinal.Rows.Count; i++)
                {
                    for (int b = 0; b < _dtFinal.Columns.Count; b++)
                    {
                        excelObj.getCell(4 + i, b, "Sheet1").CellStyle = excelObj.getStyle("Headers");
                    }
                }

                excelObj.getCell(4, 0, "Sheet1").CellFormula = string.Format("A{0} - A{1}", 1, 2);
                excelObj.Save(_savePath);
            }
            catch (Exception e)
            {
                excelObj.Dispose();
            }
            finally { excelObj.Dispose(); }
            System.Diagnostics.Process.Start(_savePath);
        }