標籤: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操作