• csharp: Export DataSet into Excel and import all the Excel sheets to DataSet


     /// <summary>
            /// Export DataSet into Excel
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form3_Load(object sender, EventArgs e)
            {
                //Create an Emplyee DataTable
                DataTable employeeTable = new DataTable("Employee");
                employeeTable.Columns.Add("Employee ID");
                employeeTable.Columns.Add("Employee Name");
                employeeTable.Rows.Add("1", "涂聚文");
                employeeTable.Rows.Add("2", "geovindu");
                employeeTable.Rows.Add("3", "李蘢怡");
                employeeTable.Rows.Add("4", "ноппчц");
                employeeTable.Rows.Add("5", "ニヌネハヒフキカォноппчц");
                //Create a Department Table
                DataTable departmentTable = new DataTable("Department");
                departmentTable.Columns.Add("Department ID");
                departmentTable.Columns.Add("Department Name");
                departmentTable.Rows.Add("1", "IT");
                departmentTable.Rows.Add("2", "HR");
                departmentTable.Rows.Add("3", "Finance");
    
                //Create a DataSet with the existing DataTables
                DataSet ds = new DataSet("Organization");
                ds.Tables.Add(employeeTable);
                ds.Tables.Add(departmentTable);
    
                ExportDataSetToExcel(ds);
            }
    
            /// <summary>
            /// This method takes DataSet as input paramenter and it exports the same to excel
            /// </summary>
            /// <param name="ds"></param>
            private void ExportDataSetToExcel(DataSet ds)
            {
                //Creae an Excel application instance
                //EXCEL组件接口
                System.Reflection.Missing miss = System.Reflection.Missing.Value;
                Excel.Application excelApp = new Excel.Application();
                excelApp.Application.Workbooks.Add(true);
                string timeMark = DateTime.Now.ToString("yyyyMMddHHmmss");
                string FilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "geovindu" + timeMark + ".xlsx");
                //Create an Excel workbook instance and open it from the predefined location
                //Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(FilePath);
                Excel.Workbooks books = (Excel.Workbooks)excelApp.Workbooks;
                Excel.Workbook excelWorkBook = (Excel.Workbook)books.Add(miss);
                foreach (DataTable table in ds.Tables)
                {
                    //Add a new worksheet to workbook with the Datatable name
                    Excel.Worksheet excelWorkSheet = excelWorkBook.Sheets.Add();
                    excelWorkSheet.Name = table.TableName;
    
                    for (int i = 1; i < table.Columns.Count + 1; i++)
                    {
                        excelWorkSheet.Cells[1, i] = table.Columns[i - 1].ColumnName;
                    }
    
                    for (int j = 0; j < table.Rows.Count; j++)
                    {
                        for (int k = 0; k < table.Columns.Count; k++)
                        {
                            excelWorkSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString();
                        }
                    }
                }
    
                excelWorkBook.SaveAs(FilePath, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, System.Text.Encoding.UTF8, miss, miss);
                excelWorkBook.Close(false, miss, miss);
                //excelWorkBook.Save();
                books.Close();
                excelApp.Quit();
    
            }
    

      

     /// <summary>
            /// EXCEL表的所有工作表导入到DataSet
            /// 涂聚文 Microsoft.ACE.OLEDB.12.0
            /// Geovin Du
            /// </summary>
            /// <param name="fileName"></param>
            /// <returns></returns>
            static DataSet  ImportExcelParse(string fileName)
            {
                string connectionString = string.Format("provider=Microsoft.Jet.OLEDB.4.0; data source={0};Extended Properties=Excel 8.0;", fileName);
    
    
                DataSet data = new DataSet();
    
                foreach (var sheetName in GetExcelSheetNames(connectionString))
                {
                    using (OleDbConnection con = new OleDbConnection(connectionString))
                    {
                        var dataTable = new DataTable();
                        string query = string.Format("SELECT * FROM [{0}]", sheetName);
                        con.Open();
                        OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
                        adapter.Fill(dataTable);
                        data.Tables.Add(dataTable);
                    }
                }
    
                return data;
            }
            /// <summary>
            /// 读取所有工作表名
            /// </summary>
            /// <param name="connectionString"></param>
            /// <returns></returns>
            static string[] GetExcelSheetNames(string connectionString)
            {
                OleDbConnection con = null;
                DataTable dt = null;
                con = new OleDbConnection(connectionString);
                con.Open();
                dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    
                if (dt == null)
                {
                    return null;
                }
    
                String[] excelSheetNames = new String[dt.Rows.Count];
                int i = 0;
    
                foreach (DataRow row in dt.Rows)
                {
                    excelSheetNames[i] = row["TABLE_NAME"].ToString();
                    i++;
                }
    
                return excelSheetNames;
            }
    

      

     /// <summary>
            /// 添加图片
            /// 涂聚文
            /// </summary>
            /// <param name="dt"></param>
            protected void ExportExcelImg(System.Data.DataTable dt) 
             { 
                 if (dt == null || dt.Rows.Count == 0) return; 
                 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();    
                 if (xlApp == null) 
                 { 
                     return; 
                 }
                 xlApp.Application.Workbooks.Add(true);
                 string timeMark = DateTime.Now.ToString("yyyyMMddHHmmss");
                 string FilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "geovindu" + timeMark + ".xlsx");
    
                 System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; 
                 System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); 
                 Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; 
                 Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); 
    
                 Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; 
                 Microsoft.Office.Interop.Excel.Range range;
                 System.Reflection.Missing miss = System.Reflection.Missing.Value;
                 long totalCount = dt.Rows.Count; 
                 long rowRead = 0; 
                 float percent = 0; 
                 for (int i = 0; i < dt.Columns.Count; i++) 
                 { 
                     worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName; 
                     range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1]; 
                     range.Interior.ColorIndex = 15; 
                 } 
                 for (int r = 0; r < dt.Rows.Count; r++) 
                 { 
                     for (int i = 0; i < dt.Columns.Count; i++) 
                     { 
                         try 
                         { 
                             worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i].ToString(); 
                         } 
                         catch 
                         { 
                             worksheet.Cells[r + 2, i + 1] = 
    		        dt.Rows[r][i].ToString().Replace("=", ""); 
                         } 
                     } 
                     rowRead++; 
                     percent = ((float)(100 * rowRead)) / totalCount; 
                 }
                 string strimg =Application.StartupPath+@"/IMG_6851.JPG";
                 worksheet.Shapes.AddPicture(strimg, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 100, 200, 200, 300); 
                //在添加的图片上加文字
                 worksheet.Shapes.AddTextEffect(Microsoft.Office.Core.MsoPresetTextEffect.msoTextEffect1, "涂聚文写上", "Red", 15, Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue, 150, 200); 
                 xlApp.Visible = true;
    
                 workbook.SaveAs(FilePath, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, System.Text.Encoding.UTF8, miss, miss);
                 workbook.Close(false, miss, miss);
                 //excelWorkBook.Save();
                 workbooks.Close();
                 xlApp.Quit();
             }
    

      

            /// <summary>
            /// GirdView转换成DataTable
            /// 20150813 
            /// 涂聚文
            /// </summary>
            /// <param name="dgv"></param>
            /// <returns></returns>
            public static DataTable GetGirdViewToTableHeaderText(DataGridView dgv)
            {
                DataTable dt = new DataTable();
                try
                {                
                    for (int count = 0; count < dgv.Columns.Count; count++)
                    {
                        if (dgv.Columns[count].Visible == true)
                        {
                            DataColumn dc = new DataColumn(dgv.Columns[count].HeaderText);
                            dt.Columns.Add(dc);
                        }
    
                    }
                    for (int count = 0; count < dgv.Rows.Count; count++)
                    {
                        DataRow dr = dt.NewRow();
                        for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
                        {
                            if (dgv.Columns[count].Visible == true)
                            {
                                //if (dgv[countsub, count].ValueType == typeof(string))
                                //{
                                //    dr[countsub] = "'" + dgv.Rows[count].Cells[countsub].Value;
                                //}
                                //else
                                //{
                                    dr[countsub] = dgv.Rows[count].Cells[countsub].Value;
                                //}
                                
                            }
    
                        }
                        dt.Rows.Add(dr);
    
    
                    }
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
                return dt;
            }
    
            /// <summary>
            /// List 转DataTable
            /// 涂聚文
            /// </summary>
            /// <param name="list"></param>
            /// <returns></returns>
             public static DataTable ConvertListToDataTable(List<string[]> list)
            {
                // New table.
                DataTable table = new DataTable();
    
                // Get max columns.
                int columns = 0;
                foreach (var array in list)
                {
                    if (array.Length > columns)
                    {
                        columns = array.Length;
                    }
                }
    
                // Add columns.
                for (int i = 0; i < columns; i++)
                {
                    table.Columns.Add();
                }
    
                // Add rows.
                foreach (var array in list)
                {
                    table.Rows.Add(array);
                }
    
                return table;
            }
    

      

            /// <summary>
            /// 涂聚文
            /// 2015.08.18
            /// </summary>
            /// <param name="dataGridView"></param>
            /// <returns></returns>
            public static DataTable DataGridViewToDataTable(DataGridView dataGridView)
            {
    
                DataTable dt = new DataTable();
                try
                {
                    foreach (DataGridViewColumn col in dataGridView.Columns)
                    {
                        if (col.Visible == true)
                        {
                            dt.Columns.Add(col.HeaderText, col.ValueType);
                        }
                    }
                    foreach (DataGridViewRow gridRow in dataGridView.Rows)
                    {
                        if (gridRow.IsNewRow)
                            continue;
                        int irow = 0;
                        DataRow dtRow = dt.NewRow();
                        for (int i1 = 0; i1 < dataGridView.Columns.Count; i1++)
                        {
                            if (dataGridView.Columns[i1].Visible == true)
                            {
                                dtRow[irow] = (gridRow.Cells[i1].Value == null ? DBNull.Value : gridRow.Cells[i1].Value);
                                irow++;
                            }
    
                        }
                        dt.Rows.Add(dtRow);
                    }
                    //ds.Tables.Add(dt);
                    //System.Diagnostics.Debugger.Break();
                }
                catch (Exception ex)
                {
                   MessageBox.Show(ex.Message.ToString());
                }
                return dt;
    
            }
            /// <summary>
            /// 涂聚文
            /// </summary>
            /// <param name="dgv"></param>
            /// <returns></returns>
            public static DataTable GetGirdViewToTableHeaderText(DataGridView dgv)
            {
    
                //DataGridViewColumnCollection
    
                DataTable dt = new DataTable();
                try
                {
                    //标题
                    for (int count = 0; count < dgv.Columns.Count; count++)
                    {
                        if (dgv.Columns[count].Visible == true)
                        {
                            DataColumn dc = new DataColumn(dgv.Columns[count].HeaderText, dgv.Columns[count].ValueType);
                            dt.Columns.Add(dc);
                        }
    
                    }
    
                    for (int count = 0; count < dgv.Rows.Count; count++)
                    {
                        int irow = 0;
                       DataRow dr = dt.NewRow();
                         //DataRow dr = dt.Rows.Add();
                        for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
                        {
                            if (dgv.Columns[countsub].Visible == true)
                            {
                                //if (dgv[countsub, count].ValueType == typeof(string))
                                //{
                                //    dr[countsub] = "'" + dgv.Rows[count].Cells[countsub].Value;
                                //}
                                //elsedt.Rows[countsub][count]
                                //{
                                //dr[countsub] = dgv[countsub, count].Value;// dgv.Rows[count].Cells[countsub].Value;
                                dr[irow] = dgv.Rows[count].Cells[countsub].Value; // dgv[countsub, count].Value;
                                //}
    
    
                               irow++;
                            }
    
                        }
                        dt.Rows.Add(dr);
    
                        
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }
                return dt;
            }
    

      

  • 相关阅读:
    ImageView 设置图片
    Android中GridView拖拽的效果【android进化三十六】
    Android 用户界面---拖放(Drag and Drop)(三)
    Android 用户界面---拖放(Drag and Drop)(二)
    Android 用户界面---拖放(Drag and Drop)(一)
    PHP中刷新输出缓冲
    php判断是否为json格式的方法
    php安全模式
    PHP json_encode() 函数介绍
    PHP mysql_real_escape_string() 函数防SQL注入
  • 原文地址:https://www.cnblogs.com/geovindu/p/4635407.html
Copyright © 2020-2023  润新知