2016-12-05 4 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, 는 ("en-US입니다")를, 문 CultureInfo.CreateSpecificCulture을 유의하시기 바랍니다. DateTimeFormat.ShortDatePattern은 Excel의 기본 형식 (M/월/일) 인 패턴을 따라서로 설정을 반환 셀 (또는 셀 범위)을 사용자 지정 형식으로 사용하면 형식이 자동으로 변환되어 내장 스프레드 시트가로드 될 컴퓨터의 로캘에 따라 변경됩니다. 비슷한 결과를 얻을 수있는 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에서 개발자 전도사로 일하고 있어요