zoukankan      html  css  js  c++  java
  • 获取WOED和EXCEL的公用方法

           1. 需要传入word地址

    /// <summary> /// 获取WORD内容 /// </summary> /// <param name="docFileName"></param> /// <returns></returns> public string Doc2Text(string docFileName) { Word.Application app = new Microsoft.Office.Interop.Word.Application(); object fileobj = docFileName; object nullobj = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(ref fileobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj ); string outText = doc.Content.Text; doc.Close(ref nullobj, ref nullobj, ref nullobj); app.Quit(ref nullobj, ref nullobj, ref nullobj); return outText; }


    2. 传入Excel的路径即可

     1         /// <summary>
     2         /// 读取Excel
     3         /// </summary>
     4         /// <param name="strFileName"></param>
     5         public string ResumeExcel(string path)
     6         {
     7             string str = string.Empty;
     8             //创建Application对象
     9             Excel.Application xApp = new Excel.ApplicationClass();
    10             xApp.Visible = false;
    11 
    12             object Missing = System.Reflection.Missing.Value;
    13             //得到WorkBook对象,
    14             Excel.Workbook xBook = xApp.Workbooks.Open(path, Missing, Missing, Missing, Missing,
    15                   Missing, Missing, Missing, Missing,
    16                   Missing, Missing, Missing, Missing);
    17 
    18             //指定要操作的Sheet:
    19             Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Sheets[1];
    20 
    21             //读取,通过Range对象,但使用不同的接口得到Range
    22             for (int i = 1; i <= 100; i++)
    23             {
    24                 for (int j = 1; j <= 100; j++)
    25                 {
    26                     Excel.Range rng = (Excel.Range)xSheet.Cells[i, j];
    27                     if (rng.Value2 != null)
    28                     {
    29                         str += rng.Value2.ToString();
    30                     }
    31                 }
    32             }
    33             xApp.Quit();
    34             return str;
    35         }
        3. 打开word或者Excel后要杀死进程,以免下次打开报错
    public void KillProcess() { System.Diagnostics.Process[] myPs; myPs = System.Diagnostics.Process.GetProcesses(); string myS = "EXCEL.EXE"; foreach (System.Diagnostics.Process p in myPs) { try { if (p.Modules != null) if (p.Modules.Count > 0) { System.Diagnostics.ProcessModule pm = p.Modules[0]; if (pm.ModuleName.ToLower() == "excel.exe") p.Kill(); } } catch { } finally { } } }
    欢迎交流,一起进步
  • 相关阅读:
    Files 的值“
    unable to open databse file
    你选择的点它并不一定在线上!
    各图元对应的DXF名
    combobox下拉列表进行模糊查找时,容易导致光标隐藏
    autocad2010在进行加密时总是出问题
    AutoCAD2010中没有RibbonFoldPanel,需要用RibbonRowPanel替代
    cad2009中把我在2016中定义的块打开为匿名块
    VS2015 未加载程序集时不允许进行更改
    无法将类型为“System.Windows.Forms.SplitContainer”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”
  • 原文地址:https://www.cnblogs.com/yunangel/p/6112446.html
Copyright © 2011-2022 走看看