2014年11月24日 星期一

[ClosedXML] 使用語法紀錄

using ClosedXML.Excel;

var workbook = new XLWorkbook(templateFilePath);
var worksheet = workbook.Worksheets.Worksheet(1);

//set cell value
worksheet.Cell(Row, Col).Value = string;

//set value by using DataTable
for (int j = 0; j < Data.Rows.Count; j++)
{
    for (int k = 0; k < Data.Columns.Count; k++)
    {
          worksheet.Cell(j, k).Value = Data.Rows[j][k].ToString();
     }
}

//set cell value in center
worksheet.Cell(R, C).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
worksheet.Cell(R, C).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;

//set border line
worksheet.Cell(R, C).Style.Border.SetRightBorder(XLBorderStyleValues.Thin);
worksheet.Cell(R, C).Style.Border.SetTopBorder(XLBorderStyleValues.Thin);
worksheet.Cell(R, C).Style.Border.SetBottomBorder(XLBorderStyleValues.Thin);
worksheet.Cell(R, C).Style.Border.SetLeftBorder(XLBorderStyleValues.Thin);

//column fit
worksheet.Column(columnIndex).AdjustToContents();
worksheet.Column(columnIndex).Width -= 1;

//merging columns
//Merge(true) might cause files error?
worksheet.Range(R, C, R2, C2).Column(1).Merge();

//copying worksheets
worksheet.CopyTo(sheetName);
worksheet.CopyTo(workbook2, sheetName);


workbook.SaveAs(filePath);


參考資料:
http://closedxml.codeplex.com/documentation
https://closedxml.codeplex.com/wikipage?title=Copying%20Worksheets
https://closedxml.codeplex.com/wikipage?title=Merging%20Cells

2014年11月6日 星期四

[Oracle] 在小於1的小數的整數位補0

說明:使用Round函式算百分比到小數位數,可能出現小於1的小數,Oracle不會顯示整數位數的0,如.03,那該如何補0呢?

做法:
使用TO_CHAR函式來將數值轉換成特定字串,語法:TO_CHAR(numeric, text),例:
--轉換為百分比,四捨五入到小數第2位,其中fm可去除首尾的空字元
SELECT TO_CHAR(0.05, 'fm990.09')||'%' FROM DUAL;


參考資料:
http://blog.csdn.net/hj402555749/article/details/8878587