2016-12-05 35 views
0

私は現在、.Net用にaspose.cellsを使用しており、アプリケーションで使用されている現在の言語に基づいて日付をカスタム形式に設定する必要があります。問題は、下記のコードでフォーマットを設定していますが、システム(OS)の日付フォーマットが異なる場合、カスタムフォーマットはtossになり、Excelはシステム(OS)フォーマットで日付を表示します。このための回避策はありますか?以下のコードは次のとおりです。 Aspose.cells OSの日付形式に関係なく、カスタム日付の書式設定

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/YYYY)を返しますセル(またはセルの範囲)をカスタムフォーマットとして使用すると、フォーマットが組み込みに自動的に変換され、スプレッドシートがロードされるマシンのロケールに応じて変更されます。私は同様の結果をもたらす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社

で開発者エバンジェリストとして働いています