导出excel 不保存,下载,该如何解决
导出excel 不保存,下载
public void DataTableToExcel_03(DataTable dt, string defaultFileName)
{
Microsoft.Office.Interop.Excel.Application excel1 = new Microsoft.Office.Interop.Excel.Application();
excel1.DisplayAlerts = false;
Microsoft.Office.Interop.Excel.Workbook workbook1 = excel1.Workbooks.Add(Type.Missing);
excel1.Visible = false;
Microsoft.Office.Interop.Excel.Worksheet worksheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook1.Worksheets["sheet1"];
//表头
Microsoft.Office.Interop.Excel.Range rgTitle = worksheet1.get_Range(worksheet1.Cells[1, 1], worksheet1.Cells[1, 8]);
rgTitle.Merge(rgTitle.MergeCells);
rgTitle.Borders.LineStyle = 1;
rgTitle.Font.Name = "黑体";
rgTitle.Font.Size = 11;
rgTitle.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
worksheet1.Cells[1, 1] = "(6月份下半月)11";
Microsoft.Office.Interop.Excel.Range rgrq = worksheet1.get_Range(worksheet1.Cells[2, 1], worksheet1.Cells[2, 2]);
rgrq.ColumnWidth = 10;
rgrq.Merge(rgrq.MergeCells);
rgrq.Borders.LineStyle = 1;
rgrq.Font.Name = "黑体";
rgrq.Font.Size = 11;
rgrq.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
worksheet1.Cells[2, 1] = "日期"; //Excel里从第1行,第1列计算
Microsoft.Office.Interop.Excel.Range rgzbry = worksheet1.get_Range(worksheet1.Cells[2, 3], worksheet1.Cells[2, 6]);
rgzbry.Merge(rgzbry.MergeCells);
rgzbry.Borders.LineStyle = 1;
rgzbry.Font.Name = "黑体";
rgzbry.Font.Size = 11;
rgzbry.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
worksheet1.Cells[2, 3] = "值班人员";
worksheet1.Cells[2, 7] = "带班领导";
worksheet1.Cells[2, 8] = "值班司机";
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
if (dt.Columns[j].ToString() == "日期" && dt.Rows[i][1].ToString() == "早,晚")
{
Microsoft.Office.Interop.Excel.Range shijian = worksheet1.get_Range(worksheet1.Cells[i + 3, 0 + 1], worksheet1.Cells[i + 3, 0 + 2]);
shijian.Merge(shijian.MergeCells);
shijian.Borders.LineStyle = 1;
shijian.Font.Name = "黑体";
shijian.Font.Size = 11;
shijian.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
worksheet1.Cells[i + 3, 0 + 1] = Convert.ToDateTime(dt.Rows[i][0].ToString()).ToLongDateString().ToString();
}