Bu aptalca görünüyor, ancak değerlerimi excel içinde bir tarih olarak biçimlendirilmek yerine literal bir dize olarak yazmak için #/####
biçiminde değerlerimi alamadım. .excel hücre formatını "date like" verileriyle metin olarak tutun
ben excel yazmak için ClosedXML kullanma ve kullanıyorum şu:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
Ben hücrede
2/1/1997
olsun levha excel çıkış baktığımızda - İçeri metin olarak biçimi ayarlıyorum rağmen kod, excel sayfasında bir "Tarih" olarak alıyorum - Ben sağ tıklayarak hücre, biçim, biçim "tarih" görmek, hücre biçimlendirmek kontrol edin. Ben yerine benim çıktı olarak
35462
olsun
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
:
Ben şeyleri değiştirin.
Sadece çalışma sayfasındaki 2/1997
tam değerin görüntülenmesini istiyorum. Lütfen nasıl düzeltileceğini belirtin.
Bu benim için çalıştı ama herkes bunun neden işe yaradığını söyleyebilir mi ?? – jaredbaszler
Ayrıca, "fieldValue" zaten bir dize olduğumu bilerek yukarıdaki kodu kısaltabilirdim: 'ws.Cell (rowCounter, colCounter) .SetValue (fieldValue);' – jaredbaszler
(Bu dosya bir ClosedXML için Wiki. Cell.Value = kullanarak bir değer ayarlarsanız, her zaman sizin için değerleri otomatik olarak dönüştürür, böylece otomatik olarak dizeyi bir tarih olarak algılar ve dönüştürür (Excel, varsayılan olarak CSV dosyaları ile sık sık yaptığınız gibi). Ancak, cell.SetValue() özellikle bunu önler ve değer bir dizgeyse, Excel dosyasında bir dize kalır. –