Demo 下载: http://download.csdn.net/source/2497321

1、操作Word例子

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Word = Microsoft.Office.Interop.Word; using System.Reflection; using System.Diagnostics; using System.Threading; using System.IO; namespace OfficeHelper { public class WordHelper { Word._Application _application = null; object _missing = Missing.Value; DateTime _firstTime, _endTime; /// <summary> /// 获取Word文档内容 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public string GetWordData(string fileName) { StringBuilder sb = new StringBuilder(); object objFileName = fileName; object objReadonly = true; try { _firstTime = DateTime.Now; if (_application == null) { _application = new Word.ApplicationClass(); _application.Visible = false; } _endTime = DateTime.Now; // 打开Word文档 Word.Document doc = _application.Documents.Open(ref objFileName, ref _missing, ref objReadonly, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing); int paraCount = doc.Paragraphs.Count; object nextPara = 1; Word.Paragraph para = doc.Paragraphs[1]; if (para == null) return string.Empty; // 读取文档内容 while (true) { sb.Append(para.Range.Text); sb.Append(Environment.NewLine); para = para.Next(ref nextPara); if (para == null) break; Thread.Sleep(200); } WordApplicationClose(false); } catch (Exception ex) { WordApplicationClose(false); return string.Empty; } return sb.ToString(); } /// <summary> /// 根据扩展名创建不同格式的Word文档 /// </summary> /// <param name="fileName"></param> /// <param name="content"></param> public void CreateWrodDocument(string fileName, string content) { object objTemplate = Missing.Value; object objFileName = fileName; object objReadonly = true; object objwdFormat = Path.GetExtension(fileName).ToLower() == ".docx" ? Word.WdSaveFormat.wdFormatXMLDocument : Word.WdSaveFormat.wdFormatDocument; try { _firstTime = DateTime.Now; if (_application == null) { _application = new Word.ApplicationClass(); _application.Visible = false; } _endTime = DateTime.Now; // 打开Word文档 Word.Document doc = _application.Documents.Add(ref objTemplate, ref _missing, ref _missing, ref _missing); Word.Range range = doc.Content; range.Text = content; doc.SaveAs(ref objFileName,ref objwdFormat,ref _missing, ref _missing, ref _missing,ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing,ref _missing, ref _missing, ref _missing,ref _missing, ref _missing); WordApplicationClose(false); } catch (Exception ex) { WordApplicationClose(false); throw ex; } } /// <summary> /// 关闭Word进程 /// </summary> /// <param name="isSaveChange"></param> public void WordApplicationClose(bool isSaveChange) { try { object objSave = Word.WdSaveOptions.wdDoNotSaveChanges; if (isSaveChange) { objSave = Word.WdSaveOptions.wdSaveChanges; } if (_application != null) { _application.Documents.Close(ref objSave, ref _missing, ref _missing); _application.Quit(ref objSave, ref _missing, ref _missing); } Process[] processesByName = Process.GetProcessesByName("WINWORD"); foreach (Process process in processesByName) { DateTime startTime = process.StartTime; if ((startTime > _firstTime) && (startTime < _endTime)) { process.Kill(); } } } catch { } } } }

2、操作Excel例子

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Excel=Microsoft.Office.Interop.Excel; using System.Reflection; using System.Diagnostics; namespace OfficeHelper { public class ExcelHelper { Excel.Application _application = null; object _missing = Missing.Value; DateTime _firstTime ,_endTime; /// <summary> /// 获取Excel数据 /// </summary> /// <param name="fileName"></param> /// <returns></returns> public DataTable GetExcelData(string fileName) { DataTable dt = new DataTable(); try { _firstTime = DateTime.Now; // 创建Excel主程序 if (_application == null) { _application = new Excel.ApplicationClass(); _application.Visible = false; } _endTime = DateTime.Now; // 打开文档 Excel.Workbook workBook = _application.Workbooks.Open(fileName, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing); // 第一个Sheet Excel.Worksheet sheet = (Excel.Worksheet)workBook.Sheets[1]; bool isNoEmpty = true; object rowIndex, colIndex; int row = 2; dt.Columns.Add("姓名", typeof(string)); dt.Columns.Add("出生日期", typeof(string)); dt.Columns.Add("工资", typeof(string)); // 数据不为空 while (isNoEmpty) { DataRow dr = dt.NewRow(); rowIndex = row; for (int i = 0; i < 3; i++) { colIndex = i + 1; // 获取单元格的值 Excel.Range val = (Excel.Range)sheet.Cells[rowIndex, colIndex]; if (val != null && val.Text.ToString() != string.Empty) { dr[i] = val.Text; } else { isNoEmpty = false; } } if (isNoEmpty) dt.Rows.Add(dr); row++; } // 关闭Excel主程序 _application.Workbooks.Close(); _application.Application.Quit(); _application.Quit(); _application = null; KillExcelProcess(); } catch (Exception ex) { if (_application != null) { _application.Workbooks.Close(); _application.Application.Quit(); _application.Quit(); _application = null; KillExcelProcess(); } return null; } return dt; } /// <summary> /// 保存数据到Excel /// </summary> /// <param name="fileName"></param> /// <param name="dt"></param> /// <returns></returns> public bool SetExcelData(string fileName,DataTable dt) { if(dt == null || dt.Rows.Count ==0) return false; try { _firstTime = DateTime.Now; // 创建Excel主程序 if (_application == null) { _application = new Excel.ApplicationClass(); _application.Visible = false; } _endTime = DateTime.Now; // 打开文档 Excel.Workbook workBook = _application.Workbooks.Open(fileName, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing, _missing); // 第一个Sheet Excel.Worksheet sheet = (Excel.Worksheet)workBook.Sheets[1]; object rowIndex, colIndex,valType = typeof(string); int row = 2,rowCount = dt.Rows.Count; // 填充单元格数据 for(int i=0;i<rowCount; i++) { rowIndex = row; // 单元格赋值 for(int j =0;j<dt.Columns.Count; j++) { colIndex = j + 1; Excel.Range val = (Excel.Range)sheet.Cells[rowIndex, colIndex]; val.set_Value(_missing,dt.Rows[i][j]); } row++; } // 关闭Excel主程序 workBook.Save(); _application.Workbooks.Close(); _application.Application.Quit(); _application.Quit(); _application = null; KillExcelProcess(); } catch (Exception ex) { if (_application != null) { _application.Workbooks.Close(); _application.Application.Quit(); _application.Quit(); _application = null; KillExcelProcess(); } return false; } return true; } /// <summary> /// 关闭打开的Excel进程 /// </summary> public void KillExcelProcess() { try { Process[] processesByName = Process.GetProcessesByName("Excel"); foreach (Process process in processesByName) { DateTime startTime = process.StartTime; if ((startTime > _firstTime) && (startTime <_endTime)) { process.Kill(); } } } catch { } } } }

Office 2007 PIA Demo相关推荐

  1. XSuperTooltip - Office 2007 Super Tooltip class

    XSuperTooltip - Office 2007 Super Tooltip class By Hans Dietrich | 1 Aug 2006 VC6WindowsMFCDevInterm ...

  2. 计算机office demo,新手必备!Office 2007最新官方视频Demo

    作为微软办公软件近年来最大的一次革新,Office 2007带来了全新的体验,同时也让很多用户难以轻松上手,为此,微软官方近日发布了多个视频Demo,详细讲解了各个组件的最新用法. 微软此次提供的视频 ...

  3. 十六、MDT 2013 Update 1批量部署-应用程序导入及自动安装(含OFFICE 2007安装)

    MDT 2013 Update 1批量部署与WDS部署服务相比就是多了应用程序的安装,可以在操作系统部署时可以有选择的安装或指定安装某个特定的应用程序,便于最终用户开机即用.下面是MDT 2013 U ...

  4. Office 2007打开文档提示安装Web Developer和MUI解决

    主要解决办法是卸载 Web Developer 和MUI MS是这篇文章解决 http://support.microsoft.com/kb/290301/ 下载对应office的版本,运行卸载. 旧 ...

  5. Microsoft office 2007 word PPT 转pdf的插件(转)

    大家肯定常常office转pdf.特别是Word和PowerPoint,窃以为,foxit什么的软件并不方便. 其实微软官方开发了插件,并在网站发布:SaveAsPDFandXPS. 随office ...

  6. office 2007 验证失败的解决方法

    转自   http://www.pxue.com/Html/1224.html [ 分类:技巧收集 ]   [阅读:939 ]   [ 日期:2009-9-4 ]   [ 来自:WZ ] 今天重装系统 ...

  7. office 2007打字慢问题

    在使用其中的PowerPoint 2007组件时,在打字的时候有时会十分的卡,拖泥带水的,经常会出现敲了半天键盘,屏幕上却不能及时显示输入文本的现象.在硬件配置差一点的计算机上,这种现象尤为明显,甚至 ...

  8. Office 2007无法修复、卸载、重装

    昨晚喝酒了,喝的不多,就一钢化杯家乡的鹤庆大麦酒,但今天却头老疼,可能是身体不适吧,最近喝酒就这样,不过还得来开我的系统,出问题了,还好一切顺利都解决了,还是要先把这次经历写下来,写完去打球. 我的V ...

  9. 让协同工作更加轻松——Office 2007面面观之(8)

    上一篇:Office 2007面面观之(7) - 提高个人工作效率<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com: ...

  10. 微软拟对Office 2007增添新功能 增强安全性

    北京时间12月15日消息,据国外媒体报道,微软今天发布了17个安全补丁,修复了40个安全漏洞.微软同时表示,将通过为Office 2003和Office 2007增添一项新功用,来改进安全性能. 微软 ...

最新文章

  1. 传授“带权重的负载均衡实现算法”独家设计思路!
  2. 《深入理解Spark:核心思想与源码分析》——1.2节Spark初体验
  3. opencv 安装_如何在 CentOS 8 上安装 OpenCV
  4. 三星note4 N9100刷回4.4.4系统后无法usb连接电脑
  5. 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
  6. 20200213:去除重复字母(leetcode316)
  7. DEV控件ASPxTextBox设置ClientEnabled=false之后出现的问题
  8. char强制类型转换为int_常量、变量、基本数据类型转换、和运算符
  9. 【Linux】如何在文件中写入感叹号
  10. 知云文献翻译出现乱码的解决方式
  11. Android学习入门
  12. 软件架构设计师-ER图-关系模型转换
  13. HG5520A型多用表校准仪
  14. win7安装SP1补丁
  15. 小爱同学app安卓版_小爱同学app下载安卓版-小爱同学 安卓版v2.9.42-pc6手机下载...
  16. UMLChina公众号文章精选(20220330更新精选)
  17. 云计算会不会被边缘计算取而代之
  18. Infor LN咨询服务市场报告-行业发展机遇、市场定位及主要驱动因素
  19. 2D激光雷达和视觉相结合的SLAM概述
  20. 苹果六电池_苹果官网上架新品,18999元起~

热门文章

  1. Android Sensors 总结一 (介绍)
  2. Nginx 第三方模块试用记
  3. 《代码整洁之道》:这代码写的太烂了!这些重构的小技巧帮你告别你的“垃圾代码”!...
  4. 标记肽Suc-GGF-pNA,68982-90-1
  5. 不同类型的球幕影院对观影体验有何影响?
  6. RT-Thread memheap 开启多块 SRAM的方法
  7. 内容营销如何影响搜索排名
  8. LIMS在婴幼儿配方食品检测中的应用
  9. 解决git push的时候报错error: failed to push some refs to 的问题
  10. 饮用水污染预警系统的设计与开发(前后端分离)