大量のデータをExcelシートにエクスポートしています。アクティブレポートでレポートのデータを適切にフォーマットしようとすると、パフォーマンスに関する問題が発生しています。基本的なプリントアウトを設定して、コードのどの部分が最も長い時間を費やしているかを判断しました。セルの値を設定してセルの書式設定を分割しました。ActiveReportsのフォントサイズを設定するExcelが非常に遅い
Private Sub SetSheetFormat(intRow As Integer, dDSheet As DDSheet)
Dim startRow As Integer = 6
Dim cells As Cells.DDCells = dDSheet.Cells(dDSheet.Cell(startRow, 0), dDSheet.Cell(intRow, 45))
cells.FontSize = 8
dDSheet.Cell(intRow, 47).SetValue((Date.Now - start).ToString())
cells = dDSheet.Cells(dDSheet.Cell(startRow, ReportColumns.FirmDemands), dDSheet.Cell(intRow, ReportColumns.SI_SSDollars))
cells.Alignment = Style.HorzAlignments.Right
dDSheet.Cell(intRow, 48).SetValue((Date.Now - start).ToString())
cells = dDSheet.Cells(dDSheet.Cell(startRow, ReportColumns.FirmDemands), dDSheet.Cell(intRow, ReportColumns.NetFcst))
cells.FillColor = Color.FromArgb(255, 224, 192) 'light orange
dDSheet.Cell(intRow, 49).SetValue((Date.Now - start).ToString())
cells = dDSheet.Cells(dDSheet.Cell(startRow, ReportColumns.FirmTfrsOut), dDSheet.Cell(intRow, ReportColumns.KitComptUsage))
cells.FillColor = Color.FromArgb(255, 255, 192) 'light yellow
cells = dDSheet.Cells(dDSheet.Cell(startRow, ReportColumns.FirmProd), dDSheet.Cell(intRow, ReportColumns.PlannedTfrsIn))
cells.FillColor = Color.FromArgb(&HC0FFC0) 'light green
cells = dDSheet.Cells(dDSheet.Cell(startRow, ReportColumns.TotalReceipts), dDSheet.Cell(intRow, ReportColumns.TotalReceipts))
cells.FillColor = Color.FromArgb(&H80FF80) 'dark green
dDSheet.Cell(intRow, 50).SetValue((Date.Now - start).ToString())
スプレッドシートには約7000行あります。このメソッドに入る前にデータを書き込むのに要した時間は6秒でした。フォントサイズを8に設定すると、50秒しかかかりませんでした。これを行うより良い方法はありますか?私はそれを一度に複数のセルに適用すると、トランザクション的なことが増え、より効率的になると思ったが、そうではない。
更新日: PageReportまたはPageDocumentからこのブックを生成していないことに注意してください。我々は、ワークブックに直接必要なものを書いています。
grapecityのactivereports製品を参照していますか?どのバージョンを使用していますか?私はReportColumnsを認識しませんか? –
@GrapeCityチームGrapeCityのはい。 reportcolumnsは列名を列番号に追跡するために使用した列挙型です。私たちはバージョン10を使用しています。 – dko
@GrapeCityTeamこれを引き起こした原因は分かりますか? – dko