【问题标题】:C# NPOI set cell style to Text / string 1-19 is formatted as a date / disable any formatingC# NPOI 将单元格样式设置为文本/字符串 1-19 被格式化为日期/禁用任何格式
【发布时间】:2017-07-26 14:35:46
【问题描述】:

我正在创建一个 excel,当我写一些值示例 1-19 时,当我打开 excel 文档时,我看到 1-19,但如果我点击它,那么 excel 会尝试将其格式化为日期

有没有办法强制工作表不使用任何公式或格式? 我查过了,数据格式是字符串。

 private void Test1(ref ISheet worksheet, string[] array, IWorkbook workbook, int iRow, XSSFFont font2)
        {
            var format = HSSFDataFormat.GetBuiltinFormats();

            ICellStyle _TextCellStyle = workbook.CreateCellStyle();
            _TextCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("@");
            IRow file = worksheet.CreateRow(iRow);
            int iCol = 0;
            for (int y = 0; y < array.Length; y++)
            {
                ICellStyle style = workbook.CreateCellStyle();

                style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index;
                //style.DataFormat = HSSFDataFormat.
                ICell cell = file.CreateCell(iCol, CellType.String);
                cell.SetCellValue(array[y]);
                style.SetFont(font2);
               // cell.CellStyle = style;
                var getst = cell.CellType;
                cell.CellStyle = _TextCellStyle;
                iCol++;
                getst = cell.CellType;

            }

        }

【问题讨论】:

  • 我不认为这是格式问题。它是 Excel 进行自动错误检查。它认为单元格包含日期!你最好把 ' 放在你的 1-19....

标签: excel c#-4.0 npoi


【解决方案1】:

即使按照文档使用正确的格式字符串“@”,您的数据仍保持“常规”格式。某些时间库方法在 NPOI 中不起作用,因此您必须尝试不同的方法。

您可以尝试其中一种

 _TextCellStyle.DataFormat = workbook.CreateDataFormat().GetFormat("text"); //Instead of "@"

或在为'1-19

等excel文件写入数据时为数据添加单引号

【讨论】:

  • 工作就像一个魅力
猜你喜欢
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 2017-04-09
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多