国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#基于COM方式讀取Excel表格的方法

2019-10-29 21:24:54
字體:
供稿:網(wǎng)友

本文實(shí)例講述了C#基于COM方式讀取Excel表格的方法。分享給大家供大家參考,具體如下:

using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Collections;//TestEnviroment:VS2013Update4 Excel2007//Read by COM Objectnamespace SmartStore.LocalModel{  public class ExcelTable  {    private string _path;    public ExcelTable()    {      _path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;      _path += "條碼對照表.xls";    }    public void ReadEPC2BarCode(out ArrayList arrayPI)    {      DataTable dt = ReadSheet(2);      arrayPI = new ArrayList();      foreach (DataRow dr in dt.Rows)      {        EPC2BarCode eb = new EPC2BarCode();        eb.EPC = (string)dr["epcID"];        eb.Barcode = (string)dr["條形碼"];        eb.EPC = eb.EPC.Trim();        eb.Barcode = eb.Barcode.Trim();        if (eb.EPC == null || eb.EPC.Length <= 0)          break;        arrayPI.Add(eb);      }    }    public void ReadProductInfo(out ArrayList arrayPI)    {      DataTable dt = ReadSheet(1);      arrayPI = new ArrayList();      foreach (DataRow dr in dt.Rows)      {        ProductInfo pi = new ProductInfo();        pi.Name = (string)dr["商品名稱"];        pi.SN = (string)dr["商品編號"];        pi.BarCode = (string)dr["商品條碼"];        pi.Brand = (string)dr["品牌"];        pi.Color = (string)dr["顏色"];        pi.Size = (string)dr["尺碼"];        pi.Name = pi.Name.Trim();        pi.SN = pi.SN.Trim();        pi.BarCode = pi.BarCode.Trim();        pi.Brand = pi.Brand.Trim();        pi.Color = pi.Color.Trim();        pi.Size = pi.Size.Trim();        if (pi.Name == null || pi.Name.Length <= 0)          break;        arrayPI.Add(pi);      }    }    private DataTable ReadSheet(int indexSheet)    {      Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();      Microsoft.Office.Interop.Excel.Sheets sheets;      Microsoft.Office.Interop.Excel.Workbook workbook = null;      object oMissiong = System.Reflection.Missing.Value;      System.Data.DataTable dt = new System.Data.DataTable();      try      {        workbook = app.Workbooks.Open(_path, oMissiong, oMissiong, oMissiong, oMissiong,          oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);        //將數(shù)據(jù)讀入到DataTable中——Start        sheets = workbook.Worksheets;        //輸入1, 讀取第一張表        Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(indexSheet);        if (worksheet == null)          return null;        string cellContent;        int iRowCount = worksheet.UsedRange.Rows.Count;        int iColCount = worksheet.UsedRange.Columns.Count;        Microsoft.Office.Interop.Excel.Range range;        //負(fù)責(zé)列頭Start        DataColumn dc;        int ColumnID = 1;        range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, 1];        while (range.Text.ToString().Trim() != "")        {          dc = new DataColumn();          dc.DataType = System.Type.GetType("System.String");          dc.ColumnName = range.Text.ToString().Trim();          dt.Columns.Add(dc);          range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, ++ColumnID];        }        //End        for (int iRow = 2; iRow <= iRowCount; iRow++)        {          DataRow dr = dt.NewRow();          for (int iCol = 1; iCol <= iColCount; iCol++)          {            range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[iRow, iCol];            cellContent = (range.Value2 == null) ? "" : range.Text.ToString();            //if (iRow == 1)            //{            //  dt.Columns.Add(cellContent);            //}            //else            //{            dr[iCol - 1] = cellContent;            //}          }          //if (iRow != 1)          dt.Rows.Add(dr);        }        //將數(shù)據(jù)讀入到DataTable中——End        return dt;      }      catch      {        return null;      }      finally      {        workbook.Close(false, oMissiong, oMissiong);        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);        workbook = null;        app.Workbooks.Close();        app.Quit();        System.Runtime.InteropServices.Marshal.ReleaseComObject(app);        app = null;        GC.Collect();        GC.WaitForPendingFinalizers();      }    }  }}

希望本文所述對大家C#程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大足县| 安图县| 尼木县| 盘山县| 灵川县| 新闻| 寿阳县| 若羌县| 涪陵区| 余江县| 农安县| 南华县| 德州市| 夏河县| 宁安市| 华蓥市| 区。| 兴安县| 湛江市| 资兴市| 奎屯市| 赤城县| 乳源| 九龙坡区| 五家渠市| 行唐县| 勃利县| 阿图什市| SHOW| 唐山市| 沂源县| 柳河县| 英德市| 景泰县| 贵州省| 安龙县| 临朐县| 忻城县| 绥芬河市| 寿宁县| 招远市|