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

然鸟 2014-06-29 12:01:01
最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?
...全文
272 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
然鸟 2014-07-11
  • 打赏
  • 举报
回复
引用 4 楼 happy09li 的回复:
[quote=引用 楼主 wanjun8659 的回复:] 最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?
你用什么方法操作excel的?是你重新new 的单元格吧[/quote] 我是对原有的excel文件中的某一个单元格修改内容,现在想保持格式不变,比如字体、颜色
然鸟 2014-07-11
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
什么格式丢失了?
比如原有单元格内容是: 单元格一 我在单元后面插入字符之后,整个单元格的字体和颜色都没了! 我是直接修改单元格的value属性
熙风 2014-07-05
  • 打赏
  • 举报
回复
引用 楼主 wanjun8659 的回复:
最近用c#做excel文件内容检查工具,在某个单元格插入内容之后该单元格的原有格式全部丢失,有没有大神有更好的解决方案?
你用什么方法操作excel的?是你重新new 的单元格吧
flws_1842873645 2014-07-05
  • 打赏
  • 举报
回复
在Excel的指定范围内收索文本 private void tsbtn_Query_Click(object sender, EventArgs e) { CloseProcess("EXCEL");//关闭所有Excel进程 string P_str_Excel = tstxt_Excel.Text;//记录Excel文件路径 string P_str_SheetName = tscbox_Sheet.Text;//记录选择的工作表名称 object P_obj_Start = tstxt_Start.Text;//记录开始单元格 object P_obj_End = tstxt_End.Text;//记录结束单元格 object missing = System.Reflection.Missing.Value;//定义object缺省值 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//实例化Excel对象 //打开Excel文件 Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(P_str_Excel, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); Microsoft.Office.Interop.Excel.Worksheet worksheet;//声明工作表 worksheet = ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[P_str_SheetName]);//获取选择的工作表 Microsoft.Office.Interop.Excel.Range searchRange = worksheet.get_Range(P_obj_Start, P_obj_End);//定义查找范围 Microsoft.Office.Interop.Excel.Range currentRange = null;//定义当前找到的范围 Microsoft.Office.Interop.Excel.Range firstRange = null;//定义找到的第一个范围 object P_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;//记录当前范围 } //如果查找范围的地址与第一个查找范围的地址匹配 else if (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文件内容 }
  • 打赏
  • 举报
回复
另外你的“插入”是使用什么方式来实现的? 我们使用 Microsoft.Office.Interop.Excel 来处理大型的政府和事业单位规定的复杂报表,从来没有听说设置单元格的值会丢失格式。
  • 打赏
  • 举报
回复
什么格式丢失了?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧