zoukankan      html  css  js  c++  java
  • C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件

    项目添加应用 Microsoft.Office.Interop.Excel.dll 文件

    引用命名空间:

    using Excel = Microsoft.Office.Interop.Excel;

    简单操作Excel文件:

    复制代码
            /// <summary>
            /// 简单操作Excel文件
            /// </summary>
            /// <param name="excelPath">excel 文件路径</param>
            /// <returns></returns>
            public void ExcelOp(string excelPath)
            {
                string ExcelFilePath = excelPath.Trim();
                //set columns
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("订单号", "A");//
                dic.Add("数量", "B");
    
                Excel.Application excel = new Excel.Application();
                Excel.Workbook wb = null;
                excel.Visible = false;//设置调用引用的 Excel文件是否可见
                excel.DisplayAlerts = false;
                wb = excel.Workbooks.Open(ExcelFilePath);
                Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1]; //索引从1开始 //(Excel.Worksheet)wb.Worksheets["SheetName"];
                int rowCount = 0;//有效行,索引从1开始
                try
                {
                    rowCount = ws.UsedRange.Rows.Count;//赋值有效行
    
                    string ordernum = string.Empty;
                    string count = string.Empty;
                    //循环行
                    for (int i = 1; i <= rowCount; i++)//
                    {
                        if (ws.Rows[i] != null)
                        {
                            ordernum = ws.Cells[i, dic["订单号"]].Value2.ToString();//取单元格值
                            count = ws.Cells[i, dic["数量"]].Value2.ToString();//ws.Cells[i, 2].Value2.ToString();
                        }
                    }
                    //循环列
                    for (int i = 1; i <= ws.UsedRange.Columns.Count; i++)
                    {
                        //ws.Columns[i]
                    }
                }
                catch (Exception ex) { XtraMessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                finally
                {
                    ClosePro(excelPath, excel, wb);
                }
            }
    复制代码

    关闭Excel进程:

    复制代码
            /// <summary>
            /// 关闭Excel进程
            /// </summary>
            /// <param name="excelPath"></param>
            /// <param name="excel"></param>
            /// <param name="wb"></param>
            public void ClosePro(string excelPath, Excel.Application excel, Excel.Workbook wb)
            {
                Process[] localByNameApp = Process.GetProcessesByName(excelPath);//获取程序名的所有进程
                if (localByNameApp.Length > 0)
                {
                    foreach (var app in localByNameApp)
                    {
                        if (!app.HasExited)
                        {
                            #region
                            ////设置禁止弹出保存和覆盖的询问提示框   
                            //excel.DisplayAlerts = false;
                            //excel.AlertBeforeOverwriting = false;
    
                            ////保存工作簿   
                            //excel.Application.Workbooks.Add(true).Save();
                            ////保存excel文件   
                            //excel.Save("D:" + "\\test.xls");
                            ////确保Excel进程关闭   
                            //excel.Quit();
                            //excel = null; 
                            #endregion
                            app.Kill();//关闭进程  
                        }
                    }
                }
                if (wb != null)
                    wb.Close(true, Type.Missing, Type.Missing);
                excel.Quit();
                // 安全回收进程
                System.GC.GetGeneration(excel);
            }
    转自:https://www.cnblogs.com/xifengyeluo/p/8276477.html
  • 相关阅读:
    hdu 1272
    BZOJ_3685_普通van Emde Boas树_权值线段树
    BZOJ_3831_[Poi2014]Little Bird_单调队列优化DP
    BZOJ_3252_攻略_线段树+dfs序
    BZOJ_4653_[Noi2016]区间_线段树+离散化+双指针
    BZOJ_3210_花神的浇花集会_切比雪夫距离
    BZOJ_2124_等差子序列_线段树+Hash
    BZOJ_2212_[Poi2011]Tree Rotations_线段树合并
    BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心
    BZOJ_4325_NOIP2015 斗地主_DFS
  • 原文地址:https://www.cnblogs.com/javalinux/p/14789546.html
Copyright © 2011-2022 走看看