<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XuGang

      記錄一個程序員的成長

       

      關于ASP.NET 將數據導出成Excel 的總結[補充]

       

      //打開一個空的Excel
      Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
      app.Workbooks.Add(true);
      app.Visible = true;

       

      //打開一個已經存在的Excel文件

      Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
      app.Workbooks.Add(路徑和文件名);
      app.Visible = true;


      //讀取Excel2003 

      conExcel.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";

       

      //讀取Excel2007

      conExcel.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +filepath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";

       

      //設置禁止彈出保存和覆蓋的詢問提示框
                  app.DisplayAlerts = false;
                  app.AlertBeforeOverwriting = false;


      //復制到指定的地方,默認路徑為我的文檔
      wb.SaveCopyAs(@"D:\111.xlsx");

      //新建一個Excel并保存到指定的路徑
      app = new Microsoft.Office.Interop.Excel.Application();
      wb = app.Workbooks.Add(true);
      app.Cells[11] = "test";

      app.DisplayAlerts = false;
      app.AlertBeforeOverwriting = false;
      wb.SaveCopyAs(@"C:\111.xlsx");
      Close();


      //直接讀取Excel文件
      DataTable myT=ExcelToDataTable("D:/文件/新武昌站點資料.xls","sheet1");
      String mystr=myT.Rows[0][0].ToString();
      this.textBox1.Text=mystr;


      //版本檢測
      string strPathResult = "";
                  string strVersionResult = "";
                  string strKeyName = "Path";
                  object objResult = null;
                  Microsoft.Win32.RegistryValueKind regValueKind;
                  Microsoft.Win32.RegistryKey regKey = null;
                  Microsoft.Win32.RegistryKey regSubKey = null;

                   try
                  {
                      regKey = Microsoft.Win32.Registry.LocalMachine;

                      if (regSubKey == null)
                      {//office97
                          regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\8.0\Common\InstallRoot"false);
                          strVersionResult = "office97";
                          strKeyName = "OfficeBin";
                      }

                      if (regSubKey == null)
                      {//Office2000
                          regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\9.0\Common\InstallRoot"false);
                          strVersionResult = "office2000";
                          strKeyName = "Path";
                      }

                      if (regSubKey == null)
                      {//officeXp
                          regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot"false);
                          strVersionResult = "officeXP";
                          strKeyName = "Path";
                      }

                      if (regSubKey == null)
                      {//Office2003
                          regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot"false);
                          strVersionResult = "office2003";
                          strKeyName = "Path";
                      }

                      if (regSubKey == null)
                      {//office2007
                          regSubKey = regKey.OpenSubKey(@"SOFTWARE\Microsoft\Office\12.0\Common\InstallRoot"false);
                          strVersionResult = "office2007";
                          strKeyName = "Path";
                      }

                      objResult = regSubKey.GetValue(strKeyName);
                      regValueKind = regSubKey.GetValueKind(strKeyName);
                      if (regValueKind == Microsoft.Win32.RegistryValueKind.String)
                      {
                          strPathResult = objResult.ToString();
                      }
                  }
                  catch (System.Security.SecurityException ex)
                  {
                      throw new System.Security.SecurityException("您沒有讀取注冊表的權限", ex);
                  }
                  catch (Exception ex)
                  {
                      throw new Exception("讀取注冊表出錯!", ex);
                  }
                  finally
                  {

                      if (regKey != null)
                      {
                          regKey.Close();
                          regKey = null;
                      }

                      if (regSubKey != null)
                      {
                          regSubKey.Close();
                          regSubKey = null;
                      }
                  }

                   MessageBox.Show(strVersionResult);


      //獲取行數
      app = new Microsoft.Office.Interop.Excel.Application();
      wb = app.Workbooks.Open(path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value
                      , Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
      ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];

      //行數
      string count = ws.UsedRange.Rows.Count.ToString();


      //讀取某個單元格信息
      Range r = (Range)ws.Cells[1, 1];
      MessageBox.Show(r.Value2.ToString());


      //刪除一行數據(第一個單元格的位置)
              public void DelRow(int row,string fPath)
              {
                  OpenApp(fPath);
                  Range range = ws.UsedRange;
                  int columns = range.Columns.Count;
                  for (int i = 0; i < columns; i++)
                  {
                      ((Range)ws.Cells[row, i+1]).Delete(Missing.Value);
                  }
                  wb.Save();
                  Close();
              }

       

      //刪除一列

              public void DelCol(int col, string fPath)
              {
                  OpenApp(fPath);
                  Range range = ws.UsedRange;
                  int rows = range.Rows.Count;
                  for (int i = 0; i < rows; i++)
                  {
                      ((Range)ws.Cells[1, col]).Delete(Missing.Value);
                  }
                  wb.Save();
                  Close();
              }


      //刪除單元格
              public void DelCell(int row,int col,string fPath)
              {
                  OpenApp(fPath);
                  Range range = (Range)ws.Cells[row, col];
                  range.Delete(Missing.Value);
                  wb.Save();
                  Close();
              }

      在這里需要注意一下,在Excel表中,刪除和清除是不一樣的,清除(Clear)只是把內容清空,而單元格還在,刪除(Del)是把一個單元格刪除,下面的數據就會 自動的對其,就會造成排版問題,這是需要注意的


      //釋放資源
      因為引用的是COM組件,是非托管的代碼,所以釋放資源的代碼就需要手動的編寫,在網上查找了很多的代碼都不好用,下面這個是比較好的。
              public void Close()
              {
                  if (app == nullreturn;
                  if (wb != null)
                  {
                      wb.Close(false, Missing.Value, Missing.Value);
                      ReleaseCom(wb);
                      wb = null;
                  }
                  this.app.Quit();
                  ReleaseCom(app);
                  app = null;
                  GC.Collect();
              }
              static private void ReleaseCom(object o)
              {
                  try
                  {
                      System.Runtime.InteropServices.Marshal.ReleaseComObject(o);//強制釋放一個對象   
                  }
                  catch { }
                  finally
                  {
                      o = null;
                  }
              }


      //合并單元格
              {
                  ws.get_Range(ws.Cells[x1, y1], ws.Cells[x2, y2]).Merge(Type.Missing);
              }



       public void UniteCells(string ws, int x1, int y1, int x2, int y2)
      //合并單元格
              {
                  GetSheet(ws).get_Range(GetSheet(ws).Cells[x1, y1], GetSheet(ws).Cells[x2, y2]).Merge(Type.Missing);

              }



      //Range可以獲取一個單元格,也可以是多個單元格

      獲取一個
      Range ran=(Range)ws.Cells[Row,Col];

       

      獲取多行

      Range ran=ws.Get_Range(左上角單元格,右下角單元格);

      Range ran=ws.Get_Range(ws.Cells[row,col],ws.Cells[row,Col]);


      //設置格式
      Range ra = (Range)ws.Cells[row + row + 4, col];
      ra.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
      ra.NumberFormatLocal = "#,##0.00";


      //拷貝格式將ran選中的區域復制到ra選中的區域中
      Range ran = ws.get_Range(ws.Cells[3,1],ws.Cells[4,9]);
      Range ra = ws.get_Range(ws.Cells[5,1],ws.Cells[6,9]);
      ran.Copy(ra);

       

      posted on 2012-02-08 00:58  鋼鋼  閱讀(1379)  評論(2)    收藏  舉報

      導航

      主站蜘蛛池模板: 伊人久久大香线蕉网av| 成人av午夜在线观看| 日韩乱码卡一卡2卡三卡四| 亚洲av永久无码天堂影院| 亚洲精品一区二区三区大桥未久| 久久久天堂国产精品女人| 在线国产精品中文字幕| 伊人蕉久影院| 久久精品国产精品第一区| 国产v亚洲v天堂a无码| 免费看的日韩精品黄色片| 熟女系列丰满熟妇AV| 玩弄丰满少妇人妻视频| 久久亚洲av成人无码软件| 一本一本久久a久久精品综合| 无码日韩精品一区二区免费| 国产无码高清视频不卡| 正在播放酒店约少妇高潮| 国产精品国语对白一区二区| 中文字幕日韩有码国产| 大陆精大陆国产国语精品| 玩两个丰满老熟女久久网| 久久高潮少妇视频免费| 亚洲日韩亚洲另类激情文学| 尤物tv国产精品看片在线| 欧美精品videosbestsex日本 | 国产美女69视频免费观看| 中文字幕理伦午夜福利片| 人妻av一区二区三区av免费 | 奶头好大揉着好爽视频| 国产桃色在线成免费视频| 无码射肉在线播放视频| 亚洲人精品午夜射精日韩| 色欧美片视频在线观看| 极品蜜桃臀一区二区av| 中国女人熟毛茸茸A毛片| 少妇人妻偷人偷人精品| 一本色道久久加勒比综合| 五月丁香六月综合缴清无码| 国产精品久久毛片| 亚洲国产av无码精品无广告|