我正在使用VB和NPOI将DATE数据写入Excel ROW。
我正在尝试使用以下代码将单元格的数据格式设置为“ mm-dd-yy”,但是在设置cell.cellstyle时,我总是出现索引超出范围的错误。
有许多工作代码的C示例,但是我正在VB中尝试。
Dim CELLfont as HSSFFont = XLworkbook.CreateFont
CELLfont.FontName = "Arial"
CELLfont.IsBold = True
Dim CELLstyle As HSSFCellStyle = XLworkbook.CreateCellStyle
With CELLstyle
.BorderRight = BorderStyle.Double
.SetFont(CELLfont)
.DataFormat = XLworkbook.CreateDataFormat().GetFormat( "mm-dd-yy" )
End With
For C As Integer = 0 to DTforEXCELdata.Columns.Count - 1
XLrow = XLsheet.CreateRow(XLrowCOUNTER)
XLrow.CreateCell(C)
XLrow.Cells(C).CellStyle = CELLstyle '**Error index out of range is here**
XLrow.Cells(C).SetCellValue(DATEvalue)
Next
答案 0 :(得分:0)
您正在将cellStyle应用于负数单元格
For C As Integer = 0 to DTforEXCELdata.Columns.Count - 1
这给DTforEXCELdata.Columns.Count
的值为0
逐步查看产生它的代码,看看是否可以找到原因
答案 1 :(得分:0)
根据上面给出的示例代码,每次为每个数据表列创建新的单元格时,您都会创建一个新的行实例。
您应该在迭代列以填充该新行中每个单元格的数据之前创建该行。
XLrow = XLsheet.CreateRow(XLrowCOUNTER) ' <-- to here
For C As Integer = 0 to DTforEXCELdata.Columns.Count - 1
'XLrow = XLsheet.CreateRow(XLrowCOUNTER) ' <-- move this code
XLrow.CreateCell(C)
XLrow.Cells(C).CellStyle = CELLstyle '**Error index out of range is here**
XLrow.Cells(C).SetCellValue(DATEvalue)
Next
以上内容将解决您遇到的错误。