怎样在将数据导入Excel时,在Excel中画真线及矩形

解决方案 »

  1.   

    try
    ...{   string filename;
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Title = "请选择将导出的EXCEL文件存放路径";
    sfd.Filter="excel文档(*.xls)|*.xls";
    //sfd.OpenFile(); 
    sfd.ShowDialog();
    if (sfd.FileName != "")
    ...{
    if(sfd.FileName.LastIndexOf(".xls")<=0)
    ...{
    sfd.FileName=sfd.FileName+".xls";
    }
    filename=sfd.FileName;
    if(System.IO.File.Exists(filename))
    ...{
    System.IO.File.Delete(filename);  
    }
    Excel.ApplicationClass xlApp = new Excel.ApplicationClass();
    if (xlApp == null)
    ...{
    MessageBox.Show("无法创建Excel对象,可能您的机器未安装Excel");
    return;
    }
    Excel.Workbooks workbooks = xlApp.Workbooks;
    Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
    DataTable dt1 = (DataTable)dataGrid2.DataSource;
    float percent=0;
    long rowRead=0;
    if(dt1==null) 
    ...{
    MessageBox.Show("1");
    return;
    }
    long totalCount=dt1.Rows.Count; 
    this.progressBar1.Visible=true;
    for (int i = 0; i < dt1.Rows.Count; i++)
    ...{
    this.progressBar1.Value=i;
    for (int j = 0; j < dt1.Columns.Count; j++)
    ...{
    if (i == 0)
    ...{
    worksheet.Cells[1, j + 1] = dt1.Columns[j].ColumnName;
    }
    worksheet.Cells[i + 2, j + 1] = dt1.Rows[i][j].ToString();
    }
    rowRead++;
    percent=((float)(100*rowRead))/totalCount;    
    this.progressBar1.Text= "正在导出数据["+ percent.ToString("0.00")  +"%]...";
    }
                        this.progressBar1.Visible=false;
    workbook.Saved = true;
    workbook.SaveCopyAs(filename);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
    worksheet = null;
    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
    workbook = null;
    workbooks.Close();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
    workbooks = null;
    xlApp.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
    xlApp = null;
    MessageBox.Show("导出Excel完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    //button2_Click(null,null);}
    }
    catch(Exception ex)
    ...{
    MessageBox.Show("导出Excel失败!"+ex.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Information);
    }先要添加EXCEL的引用,这代码可以直接运行的