我有一個C#應用程序讀取上傳Excel文件(.xslx)在Excel中創建2013如何獲得openxml.spreadsheet.cell屏幕顯示值
我讀每個單元將每個細胞進入細胞的集合每個使用C#openxml庫的行的集合。
該代碼正常工作,但它不能正確讀取格式化的Excel單元格值。
這裏是細胞是如何顯示在Excel中:
我已經研究過該小區的DocumentFormat.OpenXml.Spreadsheet.Cell cell
屬性時,C#應用程序讀取它,但沒有的單元格屬性等於我想要的May-15的值。
我注意到cell.DataType和cell.CellFormula都是null,所以它們不能用來確定格式。
cell.InnerText值是「42125」。如果我更改在Excel中一般細胞格式,那麼它顯示爲42125.
我使用從this文章
代碼在這裏是我使用
for (var i = 0; i < rows.Count; i++)
{
var dataRow = new List<string>();
data.DataRows.Add(dataRow);
var row = rows[i];
var cellEnumerator = GetExcelCellEnumerator(row);
while (cellEnumerator.MoveNext())
{
var cell = cellEnumerator.Current; //return the current DocumentFormat.OpenXml.Spreadsheet.Cell
var text = ReadExcelCell(cell, workbookPart).Trim();
dataRow.Add(text);
}
}
的代碼片段。
private string ReadExcelCell(Cell cell, WorkbookPart workbookPart)
{
var cellValue = cell.CellValue;
var text = (cellValue == null) ? cell.InnerText : cellValue.Text;
if ((cell.DataType != null) && (cell.DataType == CellValues.SharedString))
{
text = workbookPart.SharedStringTablePart.SharedStringTable
.Elements<SharedStringItem>().ElementAt(
Convert.ToInt32(cell.CellValue.Text)).InnerText;
}
return (text ?? string.Empty).Trim();
}
問:
我怎麼能讀cell.InnerText五月-15的顯示值?
如果格式爲mmm-y,是否可以使用標準C#字符串/日期格式將「May-15」轉換爲「42125」或「42125」爲「May-15」