private void button5_Click(object sender, EventArgs e)//导出到Excel
        {
            ExportForDataGridview(dataGridView1,true,"报损报溢");
        }
        //导出Excel
        public static bool ExportForDataGridview(DataGridView gridView, bool isShowExcle, string mc)
        {


            string filePath = "f";
            SaveFileDialog saf = new SaveFileDialog();
            saf.FileName = mc;
            saf.Filter = "Excel files(*.xls)|*.xls";
            if (saf.ShowDialog() == DialogResult.OK)
            {

                FileInfo fileInfo = new FileInfo(saf.FileName);
                filePath = fileInfo.FullName;
                string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";

                //建立Excel对象

                Excel.Application app = new Excel.Application();

                try
                {
                    if (app == null)
                    {
                        return false;
                    }

                    //app.Visible = isShowExcle;
                    Workbooks workbooks = app.Workbooks;
                    _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                    Sheets sheets = workbook.Worksheets;
                    _Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
                    if (worksheet == null)
                    {
                        return false;
                    }
                    string sLen = "";
                    //取得最后一列列名
                    char H = (char)(64 + gridView.ColumnCount / 26);
                    char L = (char)(64 + gridView.ColumnCount % 26);
                    if (gridView.ColumnCount < 26)
                    {
                        sLen = L.ToString();
                    }
                    else
                    {
                        sLen = H.ToString() + L.ToString();
                    }


                    //标题
                    string sTmp = sLen + "1";
                    Range ranCaption = worksheet.get_Range(sTmp, "A1");
                    string[] asCaption = new string[gridView.ColumnCount];
                    for (int i = 0; i < gridView.ColumnCount; i++)
                    {
                        asCaption[i] = gridView.Columns[i].HeaderText;
                    }
                    ranCaption.Value2 = asCaption;

                    //数据
                    object[] obj = new object[gridView.Columns.Count];
                    for (int r = 0; r < gridView.RowCount - 1; r++)
                    {
                        for (int l = 0; l < gridView.Columns.Count; l++)
                        {
                            if (gridView[l, r].ValueType == typeof(DateTime))
                            {
                                obj[l] = gridView[l, r].Value.ToString();
                            }
                            else
                            {
                                obj[l] = gridView[l, r].Value;
                            }
                        }
                        string cell1 = sLen + ((int)(r + 2)).ToString();
                        string cell2 = "A" + ((int)(r + 2)).ToString();
                        Range ran = worksheet.get_Range(cell1, cell2);
                        ran.Value2 = obj;
                    }
                    //保存
                    workbook.SaveCopyAs(filePath);
                    workbook.Saved = true;
                }
                finally
                {
                    //关闭
                    app.UserControl = false;
                    app.Quit();
                }

            }
            return true;


        }

 

到Table

 

 

        public static bool ExportForDataGridview(System.Data.DataTable gridView, bool isShowExcle, string mc)
        {


            string filePath = "f";
            SaveFileDialog saf = new SaveFileDialog();
            saf.FileName = mc;
            saf.Filter = "Excel files(*.xls)|*.xls";
            if (saf.ShowDialog() == DialogResult.OK)
            {

                FileInfo fileInfo = new FileInfo(saf.FileName);
                filePath = fileInfo.FullName;
                string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";

                //建立Excel对象

                Excel.Application app = new Excel.Application();

                try
                {
                    if (app == null)
                    {
                        return false;
                    }

                    //app.Visible = isShowExcle;
                    Workbooks workbooks = app.Workbooks;
                    _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
                    Sheets sheets = workbook.Worksheets;
                    _Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
                    if (worksheet == null)
                    {
                        return false;
                    }
                    string sLen = "";
                    //取得最后一列列名
                    char H = (char)(64 + gridView.Columns.Count / 26);
                    char L = (char)(64 + gridView.Columns.Count % 26);
                    if (gridView.Columns.Count < 26)
                    {
                        sLen = L.ToString();
                    }
                    else
                    {
                        sLen = H.ToString() + L.ToString();
                    }


                    //标题
                    string sTmp = sLen + "1";
                    Range ranCaption = worksheet.get_Range(sTmp, "A1");
                    string[] asCaption = new string[gridView.Columns.Count];
                    for (int i = 0; i < gridView.Columns.Count; i++)
                    {
                        asCaption[i] = gridView.Columns[i].ColumnName;
                    }
                    ranCaption.Value2 = asCaption;

                    //数据
                    object[] obj = new object[gridView.Columns.Count];
                    for (int r = 0; r < gridView.Rows.Count - 1; r++)
                    {
                        for (int l = 0; l < gridView.Columns.Count; l++)
                        {
                            if (gridView.Rows[r][l].GetType() == typeof(DateTime))
                            {
                                obj[l] = gridView.Rows[l][r].ToString();
                            }
                            else
                            {
                                obj[l] = gridView.Rows[r][l].ToString();
                            }
                        }
                        string cell1 = sLen + ((int)(r + 2)).ToString();
                        string cell2 = "A" + ((int)(r + 2)).ToString();
                        Range ran = worksheet.get_Range(cell1, cell2);
                        ran.Value2 = obj;
                    }
                    //保存
                    workbook.SaveCopyAs(filePath);
                    workbook.Saved = true;
                }
                finally
                {
                    //关闭
                    app.UserControl = false;
                    app.Quit();
                }

            }
            return true;


        }


 

posted on 2008-11-27 11:26  伯煌  阅读(256)  评论(0编辑  收藏  举报