用数组输出excel文档并使用NumberFormat

我输出大量的数据,以卓越。 我正在使用数组将每列写入一系列单元格。

Dim startCell As Excel.Range = xlsWorksheet.Cells(2, intCol) Dim endCell As Excel.Range = xlsWorksheet.Cells(strData.GetLength(0) + 1, intCol) Dim writeRange As Excel.Range = xlsWorksheet.Range(startCell, endCell) writeRange.NumberFormat = "0.00%" writeRange.Value = strData 

我遇到的问题是NumberFormat不能正确应用。 当我打开文档时,没有任何数字单元格格式正确。 但是,格式是文档的一部分。 如果在Excel中input一个单独的单元格,然后按回车,格式将应用于数据。

我之前有过这个问题,当我输出的数据优于每个单元格的循环,我会输出数据后应用格式。 我发现,如果我在输出数据之前移动了格式,这就解决了这种情况。 我已经尝试做输出前后的格式,并得到完全相同的结果。

通过将数组设置为数字数据types来修复。 此外,十进制数据types不会与Excel一起工作,我将它们转换为double并分配给一个double数组。

Microsoft.Office.Interop.Excel使用NumberFormat非常简单。 下面的代码被testing和工作:

  Dim wb As Microsoft.Office.Interop.Excel.Workbook Dim ws As Microsoft.Office.Interop.Excel.Worksheet Dim xl As New Microsoft.Office.Interop.Excel.Application xl.Visible = True wb = xl.Workbooks.Add() ws = wb.Sheets.Add() ws.Name = "TEST SHEET" ws.Cells(2, 2) = "Test Value" ws.Cells(3, 2) = "1.234567" ws.Range(ws.Cells(3, 2), ws.Cells(3, 2)).NumberFormat = "0.00%" 

结果:
结果

“Number%”的“0.00%”将产生两位数的精度百分比值。