问题描述
最近用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文件中的某一个单元格修改内容,现在想保持格式不变,比如字体、颜色