2017-07-26 38 views
0

我創建一個excel,當我編寫一些值示例1-19時,當我打開excel文檔時,我看到1 -19,但如果我點擊它,然後Excel試圖將其格式化爲日期C#NPOI將單元格樣式設置爲文本/字符串1-19被格式化爲日期/禁用任何格式化

有一種方法來強制工作表不使用任何公式或格式? 我檢查過了,數據格式是字符串。

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; 

      } 

     } 
+0

寫時,它的數據前綴單引號,我不認爲它是格式問題。這是Excel做自動錯誤檢查。它認爲細胞含有日期!你最好放在1-19的前面...... – user3454439

回答

1

即使在根據文檔使用正確格式字符串「@」後,您的數據仍然爲「常規」格式。有些時候庫方法在NPOI中不起作用,所以你必須嘗試不同的方法。

你可以試試這些

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

一項或用於Excel文件像「1-19

+0

工作就像一個魅力 –