zoukankan      html  css  js  c++  java
  • DataGrid1 和 EXCEL2003 间的相互操作 (DataGrid1 中是什么就向EXCEL中导出什么,隐藏列的不导出)

     //导出到EXCEL
            public  bool toOutExcel(DataGridView dg, string fileName)
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
                dlg.FilterIndex = 1;
                dlg.DefaultExt = "xls";
                dlg.FileName = fileName + ".xls";
                if (dlg.ShowDialog() != DialogResult.OK) return false;
                try
                {
                    Excel.Application m_objExcel = new Excel.Application();
                    if (m_objExcel == null)
                    {
                        MessageBox.Show("EXCEL无法启动!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return false;
                    }
                    m_objExcel.Visible = true;
                    Excel.Workbooks m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
                    Excel._Workbook m_objBook = (Excel._Workbook)(m_objBooks.Add(Type.Missing));
                    Excel.Sheets m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
                    Excel._Worksheet m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));

                    //设置格式
                    //自由列宽
                    Excel.Range m_objRange = m_objSheet.get_Range("A1", Type.Missing);
                    m_objRange = m_objRange.get_Resize(dg.RowCount + 1, dg.ColumnCount);
                    m_objRange.HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;
                    m_objRange.Font.Size = 10;
                    m_objRange.NumberFormatLocal = "@";


                    for (int icol = 0; icol < dg.ColumnCount; icol++)
                    {
                        DataGridViewColumn dgc = dg.Columns[icol];
                        if (dgc.Visible == false)
                        {
                            dg.Columns.Remove(dgc);
                            icol--;
                        }
                    }
                    object[,] objData = new Object[dg.RowCount + 1, dg.ColumnCount];
                    for (int r = 0; r < dg.RowCount + 1; r++)
                    {
                        for (int j = 0; j < dg.ColumnCount; j++)
                        {
                            if (r == 0)//加标题
                            {
                                objData[r, j] = dg.Columns[j].HeaderText;
                            }
                            else
                            {
                                objData[r, j] = dg[j, r - 1].Value;
                            }
                        }
                    }
                    m_objRange.Value2 = objData;
                    m_objRange.Columns.AutoFit();

                     object m_objOpt = System.Reflection.Missing.Value;
                    if (System.IO.File.Exists(dlg.FileName))
                    {
                        System.IO.File.Delete(dlg.FileName);
                    }

                    m_objBook.SaveAs(dlg.FileName, m_objOpt, m_objOpt,
                                     m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,
                                     m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);

                    return true;
                }
                catch (Exception ex)
                {
                    Utility.ShowErrorMessage(ex.Message);
                    return false;
                }
            }

            //由 EXCEL 导入到DataGrid1 EXCEL2003
            public void toDgvFromExcel(DataGridView dg)
            {
                // 打开文件
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*";
                dlg.FilterIndex = 1;
                dlg.DefaultExt = "xls";
                dlg.FileName = "端子排数据.xls";
                if (dlg.ShowDialog() != DialogResult.OK)
                    return  ;

                System.Data.OleDb.OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
                System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
                DataSet dataSet1 = new DataSet();
                string strConnection = "";
                strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=" + dlg.FileName + ";" +
                    "Extended Properties=Excel 8.0;";
                oleDbConnection1.ConnectionString = strConnection;
                oleDbDataAdapter1.SelectCommand = new System.Data.OleDb.OleDbCommand();
                oleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM [Sheet1$]";
                oleDbDataAdapter1.SelectCommand.Connection = oleDbConnection1;
                DataTable dt = new DataTable();
                oleDbDataAdapter1.Fill(dt);
                dg.DataSource = dt;
            }

  • 相关阅读:
    基本技能训练之线程
    关于UEditor的使用配置(图片上传配置)
    PAT 乙级练习题1002. 写出这个数 (20)
    codeforces 682C Alyona and the Tree DFS
    codeforces 681D Gifts by the List dfs+构造
    codeforces 678E Another Sith Tournament 概率dp
    codeforces 680E Bear and Square Grid 巧妙暴力
    codeforces 678D Iterated Linear Function 矩阵快速幂
    codeforces 679A Bear and Prime 100 交互
    XTUOJ 1248 TC or CF 搜索
  • 原文地址:https://www.cnblogs.com/houlinbo/p/1601292.html
Copyright © 2011-2022 走看看