九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Excel開發(fā)常用方法 - 槑槑 - 博客園

Excel開發(fā)常用方法

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

 

//打開一個已經(jīng)存在的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\"";


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


//復(fù)制到指定的地方,默認路徑為我的文檔
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("您沒有讀取注冊表的權(quán)限", 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);


//獲取行數(shù)
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];
//行數(shù)
string count = ws.UsedRange.Rows.Count.ToString();


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


//刪除一行數(shù)據(jù)(第一個單元格的位置)
        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)只是把內(nèi)容清空,而單元格還在,刪除(Del)是把一個單元格刪除,下面的數(shù)據(jù)就會 自動的對其,就會造成排版問題,這是需要注意的


//釋放資源

因為引用的是COM組件,是非托管的代碼,所以釋放資源的代碼就需要手動的編寫,在網(wǎng)上查找了很多的代碼都不好用,下面這個是比較好的,
        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]);


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


//拷貝格式將ran選中的區(qū)域復(fù)制到ra選中的區(qū)域中
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);




本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 獲取常見軟件的安裝路徑(調(diào)用注冊表)
C#如何定制Excel界面并實現(xiàn)與數(shù)據(jù)庫交互
C#實現(xiàn)向已存在的Excel文件中寫入數(shù)據(jù)實例(可用兩種方法)
C# 操作Excel
WPF 導(dǎo)出EXCEL 方法
C#創(chuàng)建Excel(.xls和.xlsx)文件的三種方法
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服