show.aspx.cs
上传用户:xrffrp
上传日期:2022-03-25
资源大小:22155k
文件大小:26k
源码类别:

OA系统

开发平台:

ASP/ASPX

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. using System.Configuration;
  5. using System.Collections;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Web.UI.HtmlControls;
  12. using System.IO;
  13. using Microsoft.Office.Interop.Excel;
  14. using Microsoft.Office.Interop;
  15. using System.Reflection;
  16. using System.Runtime.InteropServices;
  17. using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
  18. using Label = System.Web.UI.WebControls.Label;
  19. public partial class web_pos_c_show : System.Web.UI.Page
  20. {
  21.     int id = 0;
  22.     ArrayList array1 = new ArrayList();
  23.     ArrayList array2 = new ArrayList();
  24.     ArrayList array3 = new ArrayList();
  25.     ArrayList array_1 = new ArrayList();
  26.     string str_path ="~/";
  27.     string str_name = "";
  28.     protected void Page_Load(object sender, EventArgs e)
  29.     {
  30.         Table1.Visible = true;
  31.         SqlConnection conn = dbConnection.getConnection();
  32.         conn.Open();
  33.         SqlCommand comm1 = new SqlCommand("select id from OA_DEPARTMENT where name='中山隆成啟航商貿有限公司'", conn);
  34.         id = Convert.ToInt32(comm1.ExecuteScalar());
  35.         SqlCommand sqlcom2 = new SqlCommand("select id from OA_DEPARTMENT where last_id='" + id + "'", conn);
  36.         SqlDataReader comm2 = sqlcom2.ExecuteReader();
  37.         while (comm2.Read())
  38.         {
  39.             array1.Add(Convert.ToInt32(comm2["id"]));
  40.         }
  41.         comm2.Close();
  42.         foreach (int i in array1)
  43.         {
  44.             ArrayList array5 = new ArrayList();
  45.             array5.Add(i);
  46.             SqlCommand sqlcom3 = new SqlCommand("select id from OA_DEPARTMENT where last_id='" + i + "'and id!='144'and id!='145'and id!='146'and id!='147'and id!='194'and id!='197'", conn);
  47.             SqlDataReader comm3 = sqlcom3.ExecuteReader();
  48.             if (comm3.HasRows)
  49.             {
  50.                 while (comm3.Read())
  51.                 {
  52.                     array5.Add(Convert.ToInt32(comm3["id"]));
  53.                     SqlConnection conn1 = dbConnection.getConnection();
  54.                     conn1.Open();
  55.                     SqlCommand sqlcom4 = new SqlCommand("select id from OA_DEPARTMENT where last_id='" + Convert.ToInt32(comm3["id"]) + "'", conn1);
  56.                     SqlDataReader comm4 = sqlcom4.ExecuteReader();
  57.                     if (comm4.HasRows)
  58.                     {
  59.                         while (comm4.Read())
  60.                         {
  61.                             array5.Add(Convert.ToInt32(comm4["id"]));
  62.                         }
  63.                     }
  64.                     comm4.Close();
  65.                     conn1.Close();
  66.                 }
  67.             }
  68.             comm3.Close();
  69.             array2.Add(array5);
  70.         }
  71.         conn.Close();
  72.     }
  73.     protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
  74.     {
  75.         if (Calendar1.Visible == true)
  76.         {
  77.             Calendar1.Visible = false;
  78.             Calendar1.Focus();
  79.         }
  80.         else
  81.         {
  82.             Calendar1.Visible = true;
  83.             Calendar1.Focus();
  84.         }
  85.     }
  86.     protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
  87.     {
  88.         if (Calendar2.Visible == true)
  89.         {
  90.             Calendar2.Visible = false;
  91.             Calendar2.Focus();
  92.         }
  93.         else
  94.         {
  95.             Calendar2.Visible = true;
  96.             Calendar2.Focus();
  97.         }
  98.     }
  99.     protected void Calendar1_SelectionChanged(object sender, EventArgs e)
  100.     {
  101.         Calendar1.Visible = false;
  102.         string year = Calendar1.SelectedDate.Year.ToString();
  103.         string month = Calendar1.SelectedDate.Month.ToString();
  104.         if (month.Length == 1)
  105.         {
  106.             month = "0" + month;
  107.         }
  108.         string day = Calendar1.SelectedDate.Day.ToString();
  109.         if (day.Length == 1)
  110.         {
  111.             day = "0" + day;
  112.         }
  113.         TextBox1.Text = year + "-" + month + "-" + day;
  114.         TextBox1.Focus();
  115.     }
  116.     protected void Calendar2_SelectionChanged(object sender, EventArgs e)
  117.     {
  118.         Calendar2.Visible = false;
  119.         string year = Calendar2.SelectedDate.Year.ToString();
  120.         string month = Calendar2.SelectedDate.Month.ToString();
  121.         if (month.Length == 1)
  122.         {
  123.             month = "0" + month;
  124.         }
  125.         string day = Calendar2.SelectedDate.Day.ToString();
  126.         if (day.Length == 1)
  127.         {
  128.             day = "0" + day;
  129.         }
  130.         TextBox2.Text = year + "-" + month + "-" + day;
  131.         TextBox2.Focus();
  132.     }
  133.     public void getnum()
  134.     {
  135.         int k=0;
  136.         string nul="nbsp";
  137.         string department="";
  138.         double sum=0;
  139.         string time1="";
  140.         string time2="";
  141.         string time3 = "";
  142.         string time4 = "";
  143.         ArrayList array_2 = new ArrayList();
  144.         SqlConnection conn1 = dbConnection.getConnection();
  145.         conn1.Open();
  146.         foreach (ArrayList i in array2)
  147.         {
  148.             ArrayList array6 = new ArrayList();
  149.             foreach (int j in i)
  150.             {
  151.                 SqlCommand sqlcom1 = new SqlCommand("select emp_no from OA_EMPLOYEE where department_id='" + j + "'", conn1);
  152.                 SqlDataReader comm1 = sqlcom1.ExecuteReader();
  153.                 if (comm1.HasRows)
  154.                 {
  155.                     while (comm1.Read())
  156.                     {
  157.                         array6.Add(Convert.ToString(comm1["emp_no"]));
  158.                     }
  159.                 }
  160.                 comm1.Close();
  161.             }
  162.             array3.Add(array6);
  163.         }
  164.         foreach (ArrayList i in array3)
  165.         {
  166.             if (k < array1.Count)
  167.             {
  168.                 SqlCommand sqlcom2 = new SqlCommand("select name from OA_DEPARTMENT where id='" + array1[k] + "'", conn1);
  169.                 array_2.Add(Convert.ToString(sqlcom2.ExecuteScalar()));
  170.                 foreach (string j in i)
  171.                 {
  172.                     array_2.Add("員工編號");
  173.                     array_2.Add(j);
  174.                     array_2.Add("員工姓名");
  175.                     SqlConnection conn2 = dbConnection.getConnection();
  176.                     conn2.Open();
  177.                     SqlCommand sqlcom3 = new SqlCommand("select emp_name from OA_EMPLOYEE where emp_no='" + j + "'", conn2);
  178.                     array_2.Add(Convert.ToString(sqlcom3.ExecuteScalar()));
  179.                     array_2.Add("所屬部門");
  180.                     SqlCommand sqlcom4 = new SqlCommand("select f.name as name from OA_DEPARTMENT as f , OA_EMPLOYEE as g where f.id=g.department_id and g.emp_no='" + j + "'", conn2);
  181.                     department = Convert.ToString(sqlcom4.ExecuteScalar());
  182.                     array_2.Add(department);
  183.                     array_1.Add(array_2);
  184.                     array_2 = new ArrayList();
  185.                     array_2.Add("日期");
  186.                     array_2.Add("星期");
  187.                     array_2.Add("班別");
  188.                     array_2.Add("排班時間");
  189.                     array_2.Add("排班門店");
  190.                     array_2.Add("簽到退時間");
  191.                     array_2.Add("簽到時數");
  192.                     array_1.Add(array_2);
  193.                     array_2 = new ArrayList();
  194.                     SqlCommand sqlcom5 = new SqlCommand("select distinct data from OA_KAOQIN_JL where data between'" + TextBox1.Text + "'and'" + TextBox2.Text + "'order by data", conn2);
  195.                     SqlDataReader comm5 = sqlcom5.ExecuteReader();
  196.                     while (comm5.Read())
  197.                     {
  198.                         array_2.Add(Convert.ToString(comm5["data"]));
  199.                         array_2.Add(getweekday(Convert.ToDateTime(comm5["data"])));
  200.                         SqlConnection conn3 = dbConnection.getConnection();
  201.                         conn3.Open();
  202.                         SqlCommand sqlcom6 = new SqlCommand("select banbie from OA_KAOQIN_PBB where data='" + Convert.ToString(comm5["data"]) + "'and emp_no='" + j + "'", conn3);
  203.                         SqlDataReader comm6 = sqlcom6.ExecuteReader();
  204.                         if (comm6.HasRows)
  205.                         {
  206.                             while (comm6.Read())
  207.                             {
  208.                                 array_2.Add(Convert.ToString(comm6["banbie"]));
  209.                                 SqlConnection conn4 = dbConnection.getConnection();
  210.                                 conn4.Open();
  211.                                 SqlCommand sqlcom7 = new SqlCommand("select bengin_time,end_time from oa_pos_type where department='" + department + "'and type='" + Convert.ToString(comm6["banbie"]) + "'", conn4);
  212.                                 SqlDataReader comm7 = sqlcom7.ExecuteReader();
  213.                                 if (comm7.HasRows)
  214.                                 {
  215.                                     while (comm7.Read())
  216.                                     {
  217.                                         array_2.Add(Convert.ToString(comm7["bengin_time"]));
  218.                                         array_2.Add(Convert.ToString(comm7["end_time"]));
  219.                                     }
  220.                                 }
  221.                                 else
  222.                                 {
  223.                                     array_2.Add(nul);
  224.                                     array_2.Add(nul);
  225.                                 }
  226.                                 comm7.Close();
  227.                                 conn4.Close();
  228.                             }
  229.                             array_2.Add(department);
  230.                         }
  231.                         else
  232.                         {
  233.                             array_2.Add(nul);
  234.                             array_2.Add(nul);
  235.                             array_2.Add(nul);
  236.                             array_2.Add(nul);
  237.                         }
  238.                         comm6.Close();
  239.                         conn3.Close();
  240.                         SqlConnection conn5 = dbConnection.getConnection();
  241.                         conn5.Open();
  242.                         SqlCommand sqlcom8 = new SqlCommand("select f.zao as zao,f.wan as wan,f.wuxia as wuxia,f.wushang as wushang from OA_KAOQIN_JL as f,OA_EMPLOYEE as g where f.card_id=g.work_card_no1 and g.emp_no='" + j + "'and data='" + Convert.ToString(comm5["data"]) + "'", conn5);
  243.                         SqlDataReader comm8 = sqlcom8.ExecuteReader();
  244.                         if (comm8.HasRows)
  245.                         {
  246.                             while (comm8.Read())
  247.                             {
  248.                                 time1 = Convert.ToString(comm8["zao"]);
  249.                                 time2 = Convert.ToString(comm8["wan"]);
  250.                                 time3 = Convert.ToString(comm8["wuxia"]);
  251.                                 time4 = Convert.ToString(comm8["wushang"]);
  252.                                 if (time1.Equals(""))
  253.                                 {
  254.                                     array_2.Add(nul);
  255.                                 }
  256.                                 else
  257.                                 {
  258.                                     array_2.Add(time1);
  259.                                 }
  260.                                 if (time3.Equals(""))
  261.                                 {
  262.                                     array_2.Add(nul);
  263.                                 }
  264.                                 else
  265.                                 {
  266.                                     array_2.Add(time3);
  267.                                 }
  268.                                 if (time4.Equals(""))
  269.                                 {
  270.                                     array_2.Add(nul);
  271.                                 }
  272.                                 else
  273.                                 {
  274.                                     array_2.Add(time4);
  275.                                 }
  276.                                 if (time2.Equals(""))
  277.                                 {
  278.                                     array_2.Add(nul);
  279.                                 }
  280.                                 else
  281.                                 {
  282.                                     array_2.Add(nul);
  283.                                 }
  284.                                 if (time1.Length == 5)
  285.                                 {
  286.                                     time1 = "0" + time1;
  287.                                 }
  288.                                 if (time2.Length == 5)
  289.                                 {
  290.                                     time2 = "0" + time2;
  291.                                 }
  292.                                 if (!(time1.Equals("")) && (!time2.Equals("")))
  293.                                 {
  294.                                     sum = (double)(Convert.ToInt32(time2.Substring(0, 2)) - Convert.ToInt32(time1.Substring(0, 2)) - 1.5 + (double)(Convert.ToInt32(time2.Substring(2, 2)) - Convert.ToInt32(time1.Substring(2, 2))) / 60);
  295.                                     sum = Round(sum, 2);
  296.                                     array_2.Add(Convert.ToString(sum));
  297.                                 }
  298.                                 else
  299.                                 {
  300.                                     array_2.Add(nul);
  301.                                 }
  302.                                 array_1.Add(array_2);
  303.                             }
  304.                         }
  305.                         else
  306.                         {
  307.                             array_2.Add(nul);
  308.                             array_2.Add(nul);
  309.                             array_2.Add(nul);
  310.                             array_2.Add(nul);
  311.                             array_2.Add(nul);
  312.                         }
  313.                         comm8.Close();
  314.                         conn5.Close();
  315.                     }
  316.                     comm5.Close();
  317.                     conn2.Close();
  318.                 }
  319.                 k++;
  320.             }
  321.         }
  322.         conn1.Close();
  323.     }
  324.     public double Round(double v, int x)
  325.     {
  326.         bool flat = false;
  327.         if (v < 0)
  328.         {
  329.             flat = true;
  330.             v = -v;
  331.         }
  332.         int ivalue = 1;
  333.         for (int i = 1; i <= x; i++)
  334.         {
  335.             ivalue = 10 * ivalue;
  336.         }
  337.         double num = Math.Round(v*ivalue+0.5,0);
  338.         v = num / ivalue;
  339.         if (flat)
  340.         {
  341.             v = -v;
  342.         }
  343.         return v;
  344.     }
  345.     public string getweekday(DateTime data)
  346.     {
  347.         string str = null;
  348.         switch (data.DayOfWeek.ToString())
  349.         {
  350.             case "Monday":
  351.                 str = "星期一";
  352.                 break;
  353.             case "Tuesday":
  354.                 str = "星期二";
  355.                 break;
  356.             case "Wednesday":
  357.                 str = "星期三";
  358.                 break;
  359.             case "Thursday":
  360.                 str = "星期四";
  361.                 break;
  362.             case "Friday":
  363.                 str = "星期五";
  364.                 break;
  365.             case "Saturday":
  366.                 str = "星期六";
  367.                 break;
  368.             case "Sunday":
  369.                 str = "星期日";
  370.                 break;
  371.         }
  372.         return str;
  373.     }
  374.     protected void Button1_Click(object sender, EventArgs e)
  375.     {
  376.         array_1 = new ArrayList();
  377.         getnum();
  378.         getexcel();
  379.         download(str_path, str_name);
  380.         delete(str_path,str_name);
  381.     }
  382.     public void getexcel()
  383.     {
  384.         int p = 0;
  385.         int q = 0;
  386.         int k = 2;
  387.          ExcelApplication exc = new ExcelApplication();
  388.          exc.ScreenUpdating = false;
  389.          exc.Visible = false;
  390.          exc.UserControl = false;
  391.          Workbooks workbooks = exc.Workbooks;
  392.         _Workbook workbook = workbooks.Add(true);
  393.          Sheets shs =workbook.Sheets;
  394.          _Worksheet sh = (_Worksheet)shs.get_Item(1);
  395.          Range rang = sh.get_Range(sh.Cells[1, 1], sh.Cells[1, 11]);
  396.          rang.Merge(true);
  397.          rang.Value2 = "中山隆成启航商贸有限公司";
  398.          rang.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  399.          foreach(ArrayList i in array_1 )
  400.          {
  401.              q = 0;
  402.              if (p < 65000)
  403.              {
  404.                  foreach (string j in i)
  405.                  {
  406.                      if (!j.Equals("日期"))
  407.                      {
  408.                          if (j == "&nbsp;")
  409.                          {
  410.                              Range rang1 = sh.get_Range(sh.Cells[p+2,q+1],sh.Cells[p+2,q+1]);
  411.                              rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  412.                              rang1.Borders.Weight = XlBorderWeight.xlMedium;
  413.                              rang1.Value2 = "";
  414.                          }
  415.                          else
  416.                          {
  417.                              Range rang1 = sh.get_Range(sh.Cells[p + 2, q + 1], sh.Cells[p + 2, q + 1]);
  418.                              rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  419.                              rang1.Borders.Weight = XlBorderWeight.xlMedium;
  420.                              rang1.Value2 = j;
  421.                          }
  422.                          q++;
  423.                      }
  424.                      else
  425.                      {
  426.                          Range rang3=sh.get_Range(sh.Cells[p+2,q+1],sh.Cells[p+2,q+1]);
  427.                          //rang3.Font.Name = "黑体";
  428.                          rang3.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  429.                          rang3.Borders.LineStyle = XlLineStyle.xlContinuous;
  430.                          rang3.Borders.Weight = XlBorderWeight.xlMedium;
  431.                          rang3.Value2="日期";
  432.                          Range rang4 = sh.get_Range(sh.Cells[p + 2, q + 2], sh.Cells[p + 2, q + 2]);
  433.                          //rang4.Font.Name = "黑体";
  434.                          rang4.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  435.                          rang4.Borders.Weight = XlBorderWeight.xlMedium;
  436.                          rang4.Value2 = "星期";
  437.                          Range rang5 = sh.get_Range(sh.Cells[p + 2, q + 3], sh.Cells[p + 2, q + 3]);
  438.                          //rang5.Font.Name = "黑体";
  439.                          rang5.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  440.                          rang5.Borders.Weight = XlBorderWeight.xlMedium;
  441.                          rang5.Value2 = "班别";
  442.                          Range rang1 = sh.get_Range(sh.Cells[p+2,q+4],sh.Cells[p+2,q+5]);
  443.                          rang1.Merge(true);
  444.                          //rang1.Font.Name = "黑体";
  445.                          rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  446.                          rang1.Borders.Weight = XlBorderWeight.xlMedium;
  447.                          rang1.Value2 = "排班时间";
  448.                          Range rang7 = sh.get_Range(sh.Cells[p + 2, q + 6], sh.Cells[p + 2, q + 6]);
  449.                          //rang7.Font.Name = "黑体";
  450.                          rang7.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  451.                          rang7.Borders.Weight = XlBorderWeight.xlMedium;
  452.                          rang7.Value2 = "排班门店";
  453.                          Range rang2 = sh.get_Range(sh.Cells[p+2,q+7],sh.Cells[p+2,q+10]);
  454.                          rang2.Merge(true);
  455.                          rang2.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  456.                          rang2.Borders.Weight = XlBorderWeight.xlMedium;
  457.                          //rang2.Font.Name = "黑体";
  458.                          rang2.Value2 = "签到退时间";
  459.                          Range rang6 = sh.get_Range(sh.Cells[p + 2, q + 11], sh.Cells[p + 2, q + 11]);
  460.                          //rang6.Font.Name = "黑体";
  461.                          rang6.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  462.                          rang6.Borders.Weight = XlBorderWeight.xlMedium;
  463.                          rang6.Value2 = "签到时数";
  464.                          break;
  465.                      }
  466.                  }
  467.              }
  468.              else
  469.              {
  470.                  p = 0;
  471.                  foreach (string j in i)
  472.                  {
  473.                      if (!j.Equals("日期"))
  474.                      {
  475.                          sh = (_Worksheet)shs.get_Item(k);
  476.                          k = k + 1;
  477.                          if (j == "&nbsp;")
  478.                          {
  479.                              Range rang1 = sh.get_Range(sh.Cells[p + 2, q + 1], sh.Cells[p + 2, q + 1]);
  480.                              rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  481.                              rang1.Borders.Weight = XlBorderWeight.xlMedium;
  482.                              rang1.Value2 = "";
  483.                          }
  484.                          else
  485.                          {
  486.                              Range rang1 = sh.get_Range(sh.Cells[p + 2, q + 1], sh.Cells[p + 2, q + 1]);
  487.                              rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  488.                              rang1.Borders.Weight = XlBorderWeight.xlMedium;
  489.                              rang1.Value2 = j;
  490.                          }
  491.                          q++;
  492.                      }
  493.                      else
  494.                      {
  495.                          Range rang3 = sh.get_Range(sh.Cells[p + 2, q + 1], sh.Cells[p + 2, q + 1]);
  496.                          rang3.Font.Name = "黑体";
  497.                          rang3.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  498.                          rang3.Borders.Weight = XlBorderWeight.xlMedium;
  499.                          rang3.Value2 = "日期";
  500.                          Range rang4 = sh.get_Range(sh.Cells[p + 2, q + 2], sh.Cells[p + 2, q + 2]);
  501.                          rang4.Font.Name = "黑体";
  502.                          rang4.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  503.                          rang4.Borders.Weight = XlBorderWeight.xlMedium;
  504.                          rang4.Value2 = "星期";
  505.                          Range rang5 = sh.get_Range(sh.Cells[p + 2, q + 3], sh.Cells[p + 2, q + 3]);
  506.                          rang5.Font.Name = "黑体";
  507.                          rang5.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  508.                          rang5.Borders.Weight = XlBorderWeight.xlMedium;
  509.                          rang5.Value2 = "班别";
  510.                          Range rang1 = sh.get_Range(sh.Cells[p + 2, q + 4], sh.Cells[p + 2, q + 5]);
  511.                          rang1.Merge(true);
  512.                          rang1.Font.Name = "黑体";
  513.                          rang1.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  514.                          rang1.Borders.Weight = XlBorderWeight.xlMedium;
  515.                          rang1.Value2 = "排班时间";
  516.                          Range rang7 = sh.get_Range(sh.Cells[p + 2, q + 6], sh.Cells[p + 2, q + 6]);
  517.                          rang7.Font.Name = "黑体";
  518.                          rang7.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  519.                          rang7.Borders.Weight = XlBorderWeight.xlMedium;
  520.                          rang7.Value2 = "排班门店";
  521.                          Range rang2 = sh.get_Range(sh.Cells[p + 2, q + 7], sh.Cells[p + 2, q + 10]);
  522.                          rang2.Merge(true);
  523.                          rang2.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  524.                          rang2.Borders.Weight = XlBorderWeight.xlMedium;
  525.                          rang2.Font.Name = "黑体";
  526.                          rang2.Value2 = "签到退时间";
  527.                          Range rang6 = sh.get_Range(sh.Cells[p + 2, q + 11], sh.Cells[p + 2, q + 11]);
  528.                          rang6.Font.Name = "黑体";
  529.                          rang6.HorizontalAlignment = XlHAlign.xlHAlignCenter;
  530.                          rang6.Borders.Weight = XlBorderWeight.xlMedium;
  531.                          rang6.Value2 = "签到时数";
  532.                          break;
  533.                      }
  534.                  }
  535.              }   
  536.              p++;
  537.          }
  538.          exc.UserControl = true;
  539.          exc.ScreenUpdating = true;
  540.          str_name = "考勤记录.xls";
  541.          string strFilePhysicalPath = Server.MapPath(str_path)+ str_name;
  542.          sh.SaveAs(strFilePhysicalPath, Type.Missing, Type.Missing, Type.Missing,
  543.         Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
  544.          ReleaseCom(sh);
  545.          ReleaseCom(shs);
  546.          ReleaseCom(workbook);
  547.          ReleaseCom(workbooks);
  548.          exc.Quit();
  549.          ReleaseCom(exc);
  550.     }
  551.     private void ReleaseCom(object pComObj)
  552.     {
  553.         try
  554.         {
  555.             if (pComObj != null)
  556.             {
  557.                 System.Runtime.InteropServices.Marshal.ReleaseComObject(pComObj);
  558.             }
  559.         }
  560.         catch
  561.         {
  562.         }
  563.         finally
  564.         {
  565.             pComObj = null;
  566.         }
  567.     }
  568.     public void delete(string strFilePath,string strFileName)
  569.     {
  570.         string strFilePhysicalPath = Server.MapPath(strFilePath + "/") + strFileName;
  571.         if (File.Exists(strFilePhysicalPath))
  572.         {
  573.             File.Delete(strFilePhysicalPath);
  574.         }
  575.     }
  576.     public void download(string strFilePath, string strFileName)
  577.     {
  578.         string FullFileName = Server.MapPath(strFilePath + "/") + strFileName;
  579.         FileInfo DownloadFile = new FileInfo(FullFileName);
  580.         Response.Clear();
  581.         Response.ClearHeaders();
  582.         Response.Buffer = false;
  583.         Response.ContentType = "application/octet-stream";
  584.         Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
  585.         Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
  586.         Response.WriteFile(DownloadFile.FullName);
  587.         Response.Flush();
  588.         Response.End();
  589.     }
  590.      protected void TextBox1_TextChanged(object sender, EventArgs e)
  591.      {
  592.      }
  593.      protected void TextBox2_TextChanged(object sender, EventArgs e)
  594.      {
  595.      }
  596. }