2016-12-05 85 views
0

我目前使用aspose.cells for .Net,並且需要根據我們的應用程序中使用的當前語言設置自定義格式日期。問題是,我們通過下面的代碼來設置格式,但是如果系統(OS)的日期格式不同,我們的自定義格式將會拋棄並且excel以系統(OS)格式顯示日期。有沒有解決方法?下面是代碼:Aspose.cells自定義日期格式與操作系統日期格式無關

var dateStyle = dataWorksheet.Cells.GetCellStyle(startRowNumber, column); 

      dateStyle.Custom = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat.ShortDatePattern; 
      var dateRange = dataWorksheet.Cells.CreateRange(startRowNumber, column, dataTable.Rows.Count + 1, 1); 

      dateRange.SetStyle(dateStyle); 

還試圖解決here,但無濟於事。

回答

0

@Gautam, 請注意,聲明CultureInfo.CreateSpecificCulture( 「EN-US」)。DateTimeFormat.ShortDatePattern返回的模式是一個Excel的內置格式(M/d /年),因此將其設定成單元格(或單元格區域)作爲自定義格式將自動將格式轉換爲內置格式,該格式將根據要加載電子表格的計算機的語言環境而改變。我建議你使用自定義模式爲mm/dd/yyyy,這會產生類似的結果,但格式不會根據語言環境而改變。請檢查以下代碼以及顯示「格式單元格」對話框的附加快照。

C#

var book = new Workbook(); 
var sheet = book.Worksheets[0]; 
var dateStyle = sheet.Cells.GetCellStyle(0, 0); 

dateStyle.Custom = "mm/dd/yyyy";//CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat.ShortDatePattern; //represents M/d/yyyy 
var dateRange = sheet.Cells.CreateRange(1, 0, 10, 1); 
dateRange.SetStyle(dateStyle); 
dateRange.PutValue("26-Sep-2014", true, false); 
book.Save(dir + "output.xlsx"); 

enter image description here

注:我的工作是開發佈道者的Aspose