将 excel 单元格格式保留为包含 "date like" 数据的文本
Keep excel cell format as text with "date like" data
这看起来很愚蠢,但我无法将 #/####
格式的值写成文字字符串,而不是格式化为 excel 中的日期。
我正在使用 ClosedXML 写入 excel,并使用以下内容:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
查看输出 excel sheet 我进入单元格 2/1/1997
- 尽管我在代码中将格式设置为文本,但我将其作为"Date" 在 excel sheet - 我通过右键单击单元格,格式化单元格,看到 "date" 作为格式来检查这个。
如果我将事情更改为:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
我将 35462
作为我的输出。
我只想在作品sheet 上显示我的字面值 2/1997
。请指教如何改正。
考虑:
tableRow.Cell(1).Value = "'2/1997";
注意单引号。
不确定来自 ClosedXML,但可以尝试 Range.NumberFormat (MSDN Link)
例如...
Range("A1").NumberFormat = "@"
或
Selection.NumberFormat = "#/####"
试试这个
ws.Cell(rowCounter, colCounter).SetValue<string>(Convert.ToString(fieldValue));
ws.Cell(rowCounter, colCounter).Value="'"+Convert.ToString(fieldValue));
在将值写入单元格之前必须完成格式化。
我有以下机制,运行 在我制作工作表之后,就在我保存它之前:
private void SetColumnFormatToText(IXLWorksheet worksheet)
{
var wholeSheet = worksheet.Range(FirstDataRowIndexInExcel, StartCellIndex, RowCount, HeaderCount);
wholeSheet.Style.NumberFormat.Format = "@";
}
哪个没做深蹲
在我将值写入一行中的单元格之前就这样做了。
worksheet.Range(RowIndex, StartCellIndex, RowIndex, EndCellIndex).Style.NumberFormat.Format = "@";
紧随其后的是单元格值分配。
这看起来很愚蠢,但我无法将 #/####
格式的值写成文字字符串,而不是格式化为 excel 中的日期。
我正在使用 ClosedXML 写入 excel,并使用以下内容:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).DataType = XLCellValues.Text;
tableRow.Cell(1).Value = "2/1997";
// snip
查看输出 excel sheet 我进入单元格 2/1/1997
- 尽管我在代码中将格式设置为文本,但我将其作为"Date" 在 excel sheet - 我通过右键单击单元格,格式化单元格,看到 "date" 作为格式来检查这个。
如果我将事情更改为:
// snip
IXLRangeRow tableRow = tableRowRange.Row(1);
tableRow.Cell(1).Value = "2/1997";
tableRow.Cell(1).DataType = XLCellValues.Text;
// snip
我将 35462
作为我的输出。
我只想在作品sheet 上显示我的字面值 2/1997
。请指教如何改正。
考虑:
tableRow.Cell(1).Value = "'2/1997";
注意单引号。
不确定来自 ClosedXML,但可以尝试 Range.NumberFormat (MSDN Link)
例如...
Range("A1").NumberFormat = "@"
或
Selection.NumberFormat = "#/####"
试试这个
ws.Cell(rowCounter, colCounter).SetValue<string>(Convert.ToString(fieldValue));
ws.Cell(rowCounter, colCounter).Value="'"+Convert.ToString(fieldValue));
在将值写入单元格之前必须完成格式化。
我有以下机制,运行 在我制作工作表之后,就在我保存它之前:
private void SetColumnFormatToText(IXLWorksheet worksheet)
{
var wholeSheet = worksheet.Range(FirstDataRowIndexInExcel, StartCellIndex, RowCount, HeaderCount);
wholeSheet.Style.NumberFormat.Format = "@";
}
哪个没做深蹲
在我将值写入一行中的单元格之前就这样做了。
worksheet.Range(RowIndex, StartCellIndex, RowIndex, EndCellIndex).Style.NumberFormat.Format = "@";
紧随其后的是单元格值分配。