ws.Cells[1, 1].Value should reference your top right cell--is "report" appearing there successfully? If not, try skipping the merge. The merge doesn't combine the data, but rather makes multiple cells appear as one, which means you will appear to lose data that was populated in those merged cells--put your value in after the merge. Finally, are you aware that you're manually over-writing your first cell (probably first row) of data? Instead, leave a blank row for your manual header:
ws.Cells["A2"].LoadFromDataTable(dt, true);
ws.Cells[1, 1, 1, dt.Columns.Count].Merge = true;
ws.Cells[1, 1].Value = "report"
ws.Cells[1, 1, 1, dt.Columns.Count].Style.Font.Bold = true;
ws.Cells[1, 1, 1, dt.Columns.Count].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;