zoukankan      html  css  js  c++  java
  • 导出Excel 多个sheet

    using Excel = Microsoft.Office.Interop.Excel;  //"Microsoft Excel 9.0 Object Library"(Office 2000)

     public DataTable CreatTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("EventID", System.Type.GetType("System.String"));
            dt.Columns.Add("ItemName", System.Type.GetType("System.String"));
            dt.Columns.Add("EventName", System.Type.GetType("System.String"));
            DataRow dr1 = dt.NewRow();
            dr1[0] = "1";
            dr1[1] = "sss";
            dr1[2] = "sdfs";
            DataRow dr2 = dt.NewRow();
            dr2[0] = "2";
            dr2[1] = "sede";
            dr2[2] = "lj";

            DataRow dr3 = dt.NewRow();
            dr3[0] = "3";
            dr3[1] = "sfd";
            dr3[2] = "dlo";
            dt.Rows.Add(dr1);
            dt.Rows.Add(dr2);
            dt.Rows.Add(dr3);

            return dt;
        }

     public void test3()
        {
            DataTable tempDataTable = CreatTable();
            Excel.Application m_xlApp = new Excel.Application();
            m_xlApp.DisplayAlerts = false;
            m_xlApp.Visible = false;
            Excel.Workbooks workbooks = m_xlApp.Workbooks;
            Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
            Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
            try
            {
                for (int sc = 1; sc < 4; sc++)
                {
                    if (sc > 1)
                    {
                        object missing = System.Reflection.Missing.Value;
                        worksheet = (Excel.Worksheet)workbook.Worksheets.Add(missing, missing, missing, missing);
                    }
                    else
                    {
                        worksheet = (Excel.Worksheet)workbook.Worksheets[sc];

                    }
                    worksheet.Name = tempDataTable.Columns[sc - 1].ColumnName;
                    string[,] datas = new string[4, 3];
                    for (int i = 0; i < 3; i++)
                    {
                        datas[0, i] = tempDataTable.Columns[i].Caption;
                    }
                    Excel.Range range = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 3]);

                    range.Interior.ColorIndex = 15;
                    range.Font.Bold = true;
                    range.Font.Size = 9;
                    for (int r = 0; r < 3; r++)
                    {
                        for (int k = 0; k < 3; k++)
                        {
                            object obj = tempDataTable.Rows[r][tempDataTable.Columns[k].ToString()];
                            datas[r + 1, k] = obj == null ? "" : "'" + obj.ToString().Trim();
                        }
                    }
                    Excel.Range fchR = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[4, 3]);
                    fchR.Value2 = datas;
                    worksheet.Columns.EntireColumn.AutoFit();
                    m_xlApp.WindowState = Excel.XlWindowState.xlMaximized;

                    fchR.Font.Size = 9;
                    fchR.RowHeight = 14.25;
                    fchR.Borders.LineStyle = 1;
                    fchR.HorizontalAlignment = 1;
                }
                workbook.Saved = true;
                string filepath = Server.MapPath(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
                object ob = System.Reflection.Missing.Value;
                workbook.SaveAs(filepath, Excel.XlFileFormat.xlExcel7, ob, ob, ob, ob, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, ob, ob, ob, ob, ob);

                m_xlApp.Quit();
                GC.Collect();//强行销毁
                System.Diagnostics.Process.Start(filepath); //打开EXCEL 

            }
            catch (Exception ex)
            {

            }
        }


        public void test2()
        {
            DataTable dt2 = CreatTable();
            DataTable dt = CreatTable();
            Excel.Application excel1;
            Excel._Workbook xworkbook;
            Excel._Worksheet xworksheek;
            excel1 = new Excel.ApplicationClass();
            xworkbook = excel1.Workbooks.Add(true);
            xworksheek = (Excel._Worksheet)excel1.ActiveSheet;
            xworksheek.Name = "testone";

            int i = 0;
            foreach (DataColumn col in dt.Columns)
            {
                i++;
                excel1.Cells[1, i] = col.ColumnName;
                xworksheek.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Font.Bold = true;
                xworksheek.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;
                xworksheek.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Select();
                xworksheek.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Interior.ColorIndex = 3;
                xworksheek.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Columns.AutoFit();
            }

            int j = 1;
            foreach (DataRow dr in dt.Rows)
            {
                j++;
                for (int k = 0; k < i; k++)
                {
                    excel1.Cells[j, k + 1] = dr[k].ToString();
                    xworksheek.get_Range(excel1.Cells[j, k + 1], excel1.Cells[j, k + 1]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;
                    xworksheek.get_Range(excel1.Cells[j, k + 1], excel1.Cells[j, k + 1]).Select();

                }
            }

            foreach (DataColumn col in dt2.Columns)
            {
                i = 0;
                Excel._Worksheet wks;
                wks = (Excel._Worksheet)excel1.ActiveSheet;
                wks.Name = col.ColumnName;
                foreach (DataColumn col2 in dt2.Columns)
                {
                    i++;
                    excel1.Cells[1, i] = col2.ColumnName;
                    wks.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Font.Bold = true;
                    wks.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;
                    wks.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Select();
                    wks.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Interior.ColorIndex = 3;
                    wks.get_Range(excel1.Cells[1, i], excel1.Cells[1, i]).Columns.AutoFit();
                }
            }
            excel1.Cells[5, 1] = "标题";
            xworksheek.get_Range(excel1.Cells[5, 1], excel1.Cells[5, 3]).Select();
            //string FilePath = ;
            string filepath = Server.MapPath(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");
            excel1.ActiveWorkbook.SaveAs(filepath, Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
            xworkbook.Close(null, null, null);
            excel1.Workbooks.Close();
            excel1.Quit();


                //注意:这里用到的所有Excel对象都要执行这个操作,否则结束不了Excel进程
            if (xworksheek != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xworksheek);
                xworksheek = null;
            }
            if (xworkbook != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xworkbook);
                xworkbook = null;
            }
            if (excel1 != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excel1);
                excel1 = null;
            }
            GC.Collect();

        }

  • 相关阅读:
    安卓跑马灯
    utf-8加密用于汉字加密(避免乱码)
    设置将edittext的光标到最后
    自定义UIProgressView,实现渐变色进度条,带动画的
    UIImageView帧动画,包含暂停和继续功能
    UIImageView关键帧动画,监听动画结束的回调
    自定义UICollectionViewFlowLayout实现横向滚动时,离中心点越近,item越大,离中心店越远,item越小的效果
    iOS中UIView的Pan手势和UIScrollView滚动手势的冲突解决方案
    使用Cocoapods创建私有库的流程
    git代码仓库迁移的步骤
  • 原文地址:https://www.cnblogs.com/lgxll/p/2684667.html
Copyright © 2011-2022 走看看