C#操作Excel在单元格插入文本后单元格格式丢失

问题描述

最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?

解决方案

解决方案二:
什么格式丢失了?
解决方案三:
另外你的“插入”是使用什么方式来实现的?我们使用Microsoft.Office.Interop.Excel来处理大型的政府和事业单位规定的复杂报表,从来没有听说设置单元格的值会丢失格式。
解决方案四:
在Excel的指定范围内收索文本privatevoidtsbtn_Query_Click(objectsender,EventArgse){CloseProcess("EXCEL");//关闭所有Excel进程stringP_str_Excel=tstxt_Excel.Text;//记录Excel文件路径stringP_str_SheetName=tscbox_Sheet.Text;//记录选择的工作表名称objectP_obj_Start=tstxt_Start.Text;//记录开始单元格objectP_obj_End=tstxt_End.Text;//记录结束单元格objectmissing=System.Reflection.Missing.Value;//定义object缺省值Microsoft.Office.Interop.Excel.Applicationexcel=newMicrosoft.Office.Interop.Excel.Application();//实例化Excel对象//打开Excel文件Microsoft.Office.Interop.Excel.Workbookworkbook=excel.Workbooks.Open(P_str_Excel,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);Microsoft.Office.Interop.Excel.Worksheetworksheet;//声明工作表worksheet=((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[P_str_SheetName]);//获取选择的工作表Microsoft.Office.Interop.Excel.RangesearchRange=worksheet.get_Range(P_obj_Start,P_obj_End);//定义查找范围Microsoft.Office.Interop.Excel.RangecurrentRange=null;//定义当前找到的范围Microsoft.Office.Interop.Excel.RangefirstRange=null;//定义找到的第一个范围objectP_obj_Text=tstxt_Text.Text;//记录要搜索的文本//搜索第一个匹配项,指定从其后开始搜索的单元格以外的所有参数currentRange=searchRange.Find(P_obj_Text,missing,Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues,Microsoft.Office.Interop.Excel.XlLookAt.xlPart,Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows,Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,false,missing,missing);//一直搜索,直到没有匹配项while(currentRange!=null){if(firstRange==null)//如果第一个范围不包含任何值{firstRange=currentRange;//记录当前范围}//如果查找范围的地址与第一个查找范围的地址匹配elseif(currentRange.get_Address(missing,missing,Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1,missing,missing)==firstRange.get_Address(missing,missing,Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1,missing,missing)){break;//退出}//为单元格加边框currentRange.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous,Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin,Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic,Color.Black.ToArgb());currentRange.Font.Color=System.Drawing.ColorTranslator.ToOle(Color.Red);//设置搜索到的文本颜色currentRange.Font.Bold=true;//设置搜索到的文本为粗体currentRange=searchRange.FindNext(currentRange);//查找下一处}MessageBox.Show("搜索完毕!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);excel.DisplayAlerts=false;//设置保存Excel时不显示对话框workbook.Save();//保存工作表CodeGo.net/CloseProcess("EXCEL");//关闭所有Excel进程WBrowser_Excel.Navigate(P_str_Excel);//在窗体中重新显示Excel文件内容}
解决方案五:
引用楼主wanjun8659的回复:

最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?

你用什么方法操作excel的?是你重新new的单元格吧
解决方案六:
引用1楼sp1234的回复:

什么格式丢失了?

比如原有单元格内容是:单元格一我在单元后面插入字符之后,整个单元格的字体和颜色都没了!我是直接修改单元格的value属性
解决方案七:
引用4楼happy09li的回复:

Quote: 引用楼主wanjun8659的回复:
最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?

你用什么方法操作excel的?是你重新new的单元格吧

我是对原有的excel文件中的某一个单元格修改内容,现在想保持格式不变,比如字体、颜色

时间: 2024-07-28 17:14:59

C#操作Excel在单元格插入文本后单元格格式丢失的相关文章

openxml-OpenXml 单元格合并后Word打开提示错误

问题描述 OpenXml 单元格合并后Word打开提示错误 public static OutputStream creatWord(ArrayList<String> imageUrllist,String[] names,OutputStream os) { int imageSize = imageUrllist.size(); try { //word模板的路径 CustomXWPFDocument doc = new CustomXWPFDocument(new FileInputS

excel表-poi如何判断excel单元格为合并单元格

问题描述 poi如何判断excel单元格为合并单元格 今天在用poi读取excel表格的时候发现使用cell.getArrayFormulaRange()并不能返回这个单元格的边界.请问该如何判断单元格为合并单元格并获取合并单元格的行数列数

OpenXml 单元格合并后Word打开提示错误

问题描述 OpenXml 单元格合并后Word打开提示错误 string path = @"D:newdoc.docx" ; WordprocessingDocument doc = WordprocessingDocument.Create(path, WordprocessingDocumentType.Document) MainDocumentPart mainpart = doc.AddMainDocumentPart(); mainpart.Document = new D

鼠标移动到某个单元格上后,整个列都变色的实现方法_表单特效

                        [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 以上代码可以实现鼠标移动到单元格上,单元格变色,现在我想实现鼠标移动到某个单元格上后,整个列都变色不知道可以不可以实现呢? 如何定义表格的鼠标隔列变色行为 当鼠标经过时希望实现隔列变色(最好是反色) ,效果示例如下: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 代码已经帖上来,现在鼠标移动到单元格变色 phx.rows[i].cells[j].onmouseover=fun

JTable单元格修改后恢复原值

问题描述 有一个defaulttablemodel的JTable通过addMouseListenernewMouseAdapter()publicvoidmouseClicked(MouseEvente)得到某单元格改变前的值a1addTableModelListenertableValueChanged(TableModelEventevt)可以得到某单元格改变后的值a2如果a2的值是非法的修改,就把该单元格的值恢复为a1怎么实现撒 解决方案 解决方案二:补充:怎么把如果a2的值是非法的修改,

当判断一个单元格是合并单元格时,怎么读取单元格的值呢

问题描述 当判断一个单元格是合并单元格时,怎么读取单元格的值呢,我知道读取合并单元格的第一个单元格的值,但应该如何判断,如何知道哪个才是这个合并单元格的第一个单元格的值呀!?? 解决方案 解决方案二:我是操作的EXCEL表!要循环一行行的读取数据!解决方案三:没人知道么解决方案四:看来问题太简单了,没人喜回复?解决方案五:固定表格的Excel的话,可以定义在数组当中.变化表格的Excel,关注中........解决方案六:这个问题还没解决,再问个问题!~解决方案七:隐藏的工作表读取时知道怎么不读

ios-IOS:TableViewCell,点击单元格,所属单元格上文字变色

问题描述 IOS:TableViewCell,点击单元格,所属单元格上文字变色 如何去判断点击的那个单元格,效果是点击以后cell那行上的文字变色 当我点击清华大学的时候 文字颜色变成黄色,每次启动默认tableView里第一个被选中 因为调用不了系统方法,所以我需要在cellForRowAtIndexPath:中判断哪个行是被点击的,我应该怎么写 会的帮帮我把 解决方案 为什么要在cellForRowAtIndexPath:中判断呢? /** * 选中状态 * * @param tableVi

如何判断鼠标单击的单元格相对于单元格所在行的索引值

如何判断鼠标单击的单元格相对于单元格所在行的索引值 解决思路:        利用单元格的cellIndex属性即可实现 具体步骤: 代码示例: <table width="200" height="30" border="1">   <tr>     <td onClick="alert(this.cellIndex)">demo</td>     <td onClick

javascript-JavaScript,如何通过单击单元格来读取单元格的内容?

问题描述 JavaScript,如何通过单击单元格来读取单元格的内容? JavaScript,如何通过单击单元格来获得单元格的内容? 解决方案 <!DOCTYPE html> <html> <body> <script> function tdClick(self){ alert(self.innerHTML); } </script> <table> <tr><td onclick="tdClick(th