C#实现Excel插入特殊符号

上传人:宝路 文档编号:6866467 上传时间:2017-09-14 格式:DOCX 页数:5 大小:303.89KB
返回 下载 相关 举报
C#实现Excel插入特殊符号_第1页
第1页 / 共5页
C#实现Excel插入特殊符号_第2页
第2页 / 共5页
C#实现Excel插入特殊符号_第3页
第3页 / 共5页
C#实现Excel插入特殊符号_第4页
第4页 / 共5页
C#实现Excel插入特殊符号_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《C#实现Excel插入特殊符号》由会员分享,可在线阅读,更多相关《C#实现Excel插入特殊符号(5页珍藏版)》请在金锄头文库上搜索。

1、本文档包含两方面内容:1、特殊符号插入的实现,2、excel 进程的退出一、以 office2010 为例说明插入特殊字符过程情况如下:就是要导出上面的样子,而且,根据实际情况需要打印出 这种符号。以 office2010 为例说明实现步骤:1.打开 excel,点击【插入】 【符号】,找到上述的带勾和不带勾的方框,如下图:2.插入后,excel 表格中就出现这两个符号: 。选中该单元格,可以看到,如下图所示显示为:说明这些特殊符号都是字母或数字通过改变字体来实现的。二、程序实现上述过程鉴于发现 excel 进程总是不能自动退出问题,网上查找资料,找到解决办法,现在一起放到此处,以备以后资料的

2、查阅方便。1、定义类 ExcelOperatorClasspublic class ExcelOperatorClasspublic Application ExcelApplication;public Workbook ExcelWorkbook;public Worksheet ExcelWorksheet;public ExcelOperatorClass()ExcelApplication = new Application();ExcelApplication.Visible = false;public void OpenExcel(string fileName)ExcelWo

3、rkbook = ExcelApplication.Workbooks.Open(fileName);ExcelWorksheet = ExcelWorkbook.Worksheets1 as Worksheet;public void SaveExcel(string fileName)ExcelApplication.DisplayAlerts = false;ExcelApplication.AlertBeforeOverwriting = false;object FileName = fileName;object Password = ;object WritePassword =

4、 ;object ReadOnlyRecommended = false;object CreateBackup = false; ExcelWorkbook.SaveAs(FileName, Missing.Value, Password, WritePassword, ReadOnlyRecommended, CreateBackup, XlSaveAsAccessMode.xlNoChange);public void QuitExcel()ExcelApplication.Quit();public Range thisobject indexRow, Object indexColu

5、mnget return ExcelWorksheet.CellsindexRow, indexColumn as Range; 2、强制结束 Excel 进程类 utilitiypublic class utilitiyDllImport(User32.dll, CharSet = CharSet.Auto)public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);/函数原型;DWORD GetWindowThreadProcessld(HWND hwnd,LPDWORD lpdwProcessld)

6、;/参数:hWnd:窗口句柄/参数:lpdwProcessld:接收进程标识的 32 位值的地址。如果这个参数不为 NULL,GetWindwThreadProcessld 将进程标识拷贝到这个 32 位值中,否则不拷贝/返回值:返回值为创建窗口的线程标识。/定义句柄变量DllImport(kernel32.dll)public static extern int OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);/函数原型:HANDLE OpenProcess(DWORD dwDesiredAcces

7、s,BOOL bInheritHandle,DWORD dwProcessId);/参数:dwDesiredAccess:访问权限。/参数:bInheritHandle:继承标志。/参数:dwProcessId:进程 ID。public const int PROCESS_ALL_ACCESS = 0x1F0FFF;public const int PROCESS_VM_READ = 0x0010;public const int PROCESS_VM_WRITE = 0x0020; public static void GetExcelProcessID(Microsoft.Office.I

8、nterop.Excel.Application ExcelApplication, out IntPtr hwnd, out int pid)hwnd = new IntPtr(ExcelApplication.Hwnd);/通过 Windows API 获取 Excel 进程 IDpid = 0;GetWindowThreadProcessId(hwnd, out pid);public static void KillExcelApp(Microsoft.Office.Interop.Excel.Application ExcelApplication, IntPtr hwnd, int

9、 pid)if (ExcelApplication != null & pid 0)int ExcelProcess;ExcelProcess = OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE, false, pid);/判断进程是否仍然存在if (ExcelProcess 0)try/通过进程 ID,找到进程System.Diagnostics.Process process = System.Diagnostics.Process.GetProcessById(pid);/Kill 进程process.Kill();catch (Except

10、ion)/强制结束 Excel 进程失败,可以记录一下日志.else 3、函数实现特殊字符插入以及 excel 进程退出private void ExportExcel()ExcelOperatorClass excel = new ExcelOperatorClass();string filename = Directory.GetCurrentDirectory() + 测试.xls;excel.OpenExcel(filename);IntPtr hwnd;int pid;utilitiy.GetExcelProcessID(excel.ExcelApplication, out hw

11、nd, out pid);Microsoft.Office.Interop.Excel.Range range;range = excel7, 8;range.Value2 = RRRRRRRRRR;/获取需要转换为特殊字符的字符,设置其字体格式/在 Excel 中符号为:R,将其设置为 Wingdings 2 字体即可。range.Cells.get_Characters(5, 1).Font.Name = Wingdings 2;excel.SaveExcel(this.textBox2.Text + + 测试 + 输出.xls);tryexcel.QuitExcel();catchfinallyutilitiy.KillExcelApp(excel.ExcelApplication, hwnd, pid);MessageBox.Show(完成);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号