C# excel操作

來源:互聯網
上載者:User

標籤:cells   表格   多次   creat   使用   table   isp   mat   串連   

excel應用非常普遍,C#操作excel非常方便。本文介紹兩種操作excel的方法。第一種是系統內建的庫System.Data.OleDb;用此庫操作exce需要對兩種格式進行區分(.xls和.xlsx)。

1、定義連接字串

            string fileName =@"..\..\data.xlsx";            string ex = Path.GetExtension(fileName);            string connString=null;            if (ex==".xlsx")            {                connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";            }            else if (ex == ".xls")            {                connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";            }            else            {                return;            }

2、串連excel並讀取資料(跟其他資料庫讀取無異)

            OleDbConnection conn = new OleDbConnection(connString);
            conn.Open();

            OleDbCommand oleDBCmd = conn.CreateCommand();
            oleDBCmd.CommandText = "select *from[Sheet1$]";
            OleDbDataAdapter apt =new OleDbDataAdapter(oleDBCmd);
            DataSet ds = new DataSet();
            apt.Fill(ds,"t1");
            DataTable dt = ds.Tables["t1"];
            for(int i=0;i<dt.Rows.Count;i++)
            {
                Console.Write(dt.Rows[i][0] + "  ");
                Console.Write(dt.Rows[i][1]+"  ");
                Console.Write(dt.Rows[i][2] + "  ");
                Console.WriteLine(dt.Rows[i][3]);
            }
            Console.ReadKey();

            oleDBCmd.Dispose();
            conn.Close();
           

此方法由於使用資料庫語言,所以每次只能讀取一個表格(sheet),要想讀取多個表格,需要藉助string.format多次讀取excel檔案。

下面介紹一種比較方便的方法,引用庫Aspose.Cells.dll可以很方便的進行讀取。它首先定義workbook(即excel檔案)並與相關檔案串連,然後通過workbook裡面的worksheet擷取excel檔案中的表單,在通過cells擷取相應的儲存格資料。下面是具體步驟:

1、引用Aspose.Cells

using Aspose.Cells;

2、建立workbook,並串連excel

            string newCreateExcelFile = @"..\..\new.xlsx";            string fileName = @"..\..\data.xlsx";            Workbook excelWorkBook = new Workbook(fileName);

3、擷取資料

            Console.WriteLine(excelWorkBook.Worksheets.Count);//excel中表單個數            foreach (Worksheet sheet in excelWorkBook.Worksheets)            {                              Console.WriteLine(sheet.Name+"  ");//excel中表單名字            }            // 擷取某一表單中第二列資料            Worksheet sheet1 = excelWorkBook.Worksheets[4];            for(int i=0;i<sheet1.Cells.Rows.Count;i++)            {                Console.WriteLine(sheet1.Cells[i, 1].StringValue);            }

4、建立excel,可以利用此庫方便的建立excel檔案

            //建立檔案            Workbook newCreated = new Workbook();            newCreated.Worksheets.Clear();            //添加表單            newCreated.Worksheets.Add("01");            Worksheet ws = newCreated.Worksheets["01"];            //添加資料            ws.Cells[0, 0].Value = "afdsfd";            //儲存檔案            newCreated.Save(newCreateExcelFile);

 

C# excel操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.