使用com组件编辑word

 一个普通的窗体应用,6个button

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MsWord = Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Word;
using System.IO;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;

namespace wordcomtest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        public static class common
        {
             public static MsWord.Application oWordApplic;//a reference to Wordapplication
            public static MsWord.Document oDoc;//a reference to thedocument
            public static string doc_file_name = Directory.GetCurrentDirectory() + @"\content.doc";

        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            try
            {
                
                if (File.Exists(common.doc_file_name))
                {
                    File.Delete(common.doc_file_name);
                }
                common.oWordApplic = new MsWord.Application();
                object missing = System.Reflection.Missing.Value;
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
            try
            { }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                MsWord.Range curRange;
                object curTxt;
                int curSectionNum = 1;
                common.oDoc = common.oWordApplic.Documents.Add();
                common.oDoc.Activate();
                //Console.WriteLine(" 正在生成文档小节");
                object section_nextPage = MsWord.WdBreakType.wdSectionBreakNextPage;
                object page_break = MsWord.WdBreakType.wdPageBreak;
                //添加三个分节符,共四个小节
                for (int si = 0; si < 2; si++)
                {
                    common.oDoc.Paragraphs[1].Range.InsertParagraphAfter();
                    common.oDoc.Paragraphs[1].Range.InsertBreak(ref section_nextPage);
                    
                 }
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {

            try
            {
                
                int curSectionNum = 1;
                var curRange = common.oDoc.Sections[curSectionNum].Range.Paragraphs[1].Range;
                curRange.Select();
                string one_str, key_word;
                //摘要的文本来自 abstract.txt 文本文件
                StreamReader file_abstract = new StreamReader("abstract.txt");
                common.oWordApplic.Options.Overtype = false;//overtype 改写模式
                MsWord.Selection currentSelection = common.oWordApplic.Selection;
                if (currentSelection.Type == MsWord.WdSelectionType.wdSelectionNormal)
                {
                    one_str = file_abstract.ReadLine();//读入题目
                    currentSelection.TypeText(one_str);
                    currentSelection.TypeParagraph(); //添加段落标记
                    currentSelection.TypeText(" 摘要");//写入" 摘要" 二字
                    currentSelection.TypeParagraph(); //添加段落标记
                    key_word = file_abstract.ReadLine();//读入题目
                    one_str = file_abstract.ReadLine();//读入段落文本
                    while (one_str != null)
                    {
                        currentSelection.TypeText(one_str);
                        currentSelection.TypeParagraph(); //添加段落标记
                        one_str = file_abstract.ReadLine();
                    }
                    currentSelection.TypeText(" 关键字:");
                    currentSelection.TypeText(key_word);
                    currentSelection.TypeParagraph(); //添加段落标记
                }
                file_abstract.Close();
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                
                int curSectionNum = 3;
                common.oDoc.Sections[curSectionNum].Range.Paragraphs[1].Range.Select();
                Range curRange = common.oDoc.Sections[curSectionNum].Range.Paragraphs[1].Range;
                Console.WriteLine(" 正在设置标题样式");
                object wdFontSizeIndex;
                wdFontSizeIndex = 14;//此序号在 word 中的编号是格式 > 显示格式 > 样式和格式 > 显示
                                     //14 即是标题一一级标题:三号黑体。
                common.oWordApplic.ActiveDocument.Styles.get_Item(ref wdFontSizeIndex).ParagraphFormat.Alignment =
                MsWord.WdParagraphAlignment.wdAlignParagraphCenter;
                common.oWordApplic.ActiveDocument.Styles.get_Item(ref wdFontSizeIndex).Font.Name = " 黑体";
                common.oWordApplic.ActiveDocument.Styles.get_Item(ref wdFontSizeIndex).Font.Size = 16;//三号
                wdFontSizeIndex = 15;//15 即是标题二二级标题:小三号黑体。
                common.oWordApplic.ActiveDocument.Styles.get_Item(ref wdFontSizeIndex).Font.Name = " 黑体";
                common.oWordApplic.ActiveDocument.Styles.get_Item(ref wdFontSizeIndex).Font.Size = 15;//小三
                                                                                               //用指定的标题来设定文本格式
                object Style1 = MsWord.WdBuiltinStyle.wdStyleHeading1;//一级标题:三号黑体。
                object Style2 = MsWord.WdBuiltinStyle.wdStyleHeading2;//二级标题:小三号黑体。
                common.oDoc.Sections[curSectionNum].Range.Select();
                
                var currentSelection = common.oWordApplic.Selection;
                //读入第一章文本信息
                StreamReader file_content = new StreamReader("content.txt");
                var one_str = file_content.ReadLine();//一级标题
                currentSelection.TypeText(one_str);
                currentSelection.TypeParagraph(); //添加段落标记
                one_str = file_content.ReadLine();//二级标题
                currentSelection.TypeText(one_str);
                currentSelection.TypeParagraph(); //添加段落标记
                one_str = file_content.ReadLine();//正文
                while (one_str != null)
                {
                    currentSelection.TypeText(one_str);
                    currentSelection.TypeParagraph(); //添加段落标记
                    one_str = file_content.ReadLine();//正文
                     }
                file_content.Close();
                //段落的对齐方式
                curRange = common.oDoc.Sections[curSectionNum].Range.Paragraphs[1].Range;
                curRange.set_Style(ref Style1);
                common.oDoc.Sections[curSectionNum].Range.Paragraphs[1].Alignment =
                MsWord.WdParagraphAlignment.wdAlignParagraphCenter;
                curRange = common.oDoc.Sections[curSectionNum].Range.Paragraphs[2].Range;
                curRange.set_Style(ref Style2);
                //第一章正文文本格式
                for (int i = 3; i < common.oDoc.Sections[curSectionNum].Range.Paragraphs.Count; i++)
                {
                    curRange = common.oDoc.Sections[curSectionNum].Range.Paragraphs[i].Range;
                    curRange.Select();
                    curRange.Font.Name = " 宋体";
                    curRange.Font.Size = 12;
                    common.oDoc.Sections[curSectionNum].Range.Paragraphs[i].LineSpacingRule =
                    MsWord.WdLineSpacing.wdLineSpaceMultiple;
                    //多倍行距,1.25 倍,这里的浮点值是以 point 为单位的,不是行距的倍数
                    common.oDoc.Sections[curSectionNum].Range.Paragraphs[i].LineSpacing = 15f;
                    common.oDoc.Sections[curSectionNum].Range.Paragraphs[i].IndentFirstLineCharWidth(2);
                }
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            try
            {
                
                object missing = System.Reflection.Missing.Value;
                //设置页脚 section 1 摘要
                int curSectionNum = 1;
                common.oDoc.Sections[curSectionNum].Range.Select();
                //进入页脚视图
                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekCurrentPageFooter;
                common.oDoc.Sections[curSectionNum].
                Headers[MsWord.WdHeaderFooterIndex.wdHeaderFooterPrimary].
                Range.Borders[MsWord.WdBorderType.wdBorderBottom].LineStyle =
                MsWord.WdLineStyle.wdLineStyleNone;
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.RestartNumberingAtSection = true;
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.NumberStyle
                = MsWord.WdPageNumberStyle.wdPageNumberStyleUppercaseRoman;
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.StartingNumber = 1;
                //切换到文档
                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekMainDocument;
                //Console.WriteLine(" 正在设置第二节目录页眉内容");
                //设置页脚 section 2 目录
                curSectionNum = 2;
                common.oDoc.Sections[curSectionNum].Range.Select();
                

                //进入页脚视图
                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekCurrentPageFooter;
                common.oDoc.Sections[curSectionNum].
                Headers[MsWord.WdHeaderFooterIndex.wdHeaderFooterPrimary].
                Range.Borders[MsWord.WdBorderType.wdBorderBottom].LineStyle =
                MsWord.WdLineStyle.wdLineStyleNone;
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.RestartNumberingAtSection = false;
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.NumberStyle
                = MsWord.WdPageNumberStyle.wdPageNumberStyleUppercaseRoman;
                //oWordApplic.Selection.HeaderFooter.PageNumbers.StartingNumber = 1;
                //切换到文档
                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekMainDocument;
                //第一章页眉页码设置
                curSectionNum = 3;
                common.oDoc.Sections[curSectionNum].Range.Select();
                //切换入页脚视图
                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekCurrentPageFooter;
                var currentSelection = common.oWordApplic.Selection;
                var curRange = currentSelection.Range;
                //本节页码不续上节
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.RestartNumberingAtSection = true;
                //页码格式为阿拉伯
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.NumberStyle
                = MsWord.WdPageNumberStyle.wdPageNumberStyleArabic;
                //起如页码为 1
                common.oWordApplic.Selection.HeaderFooter.PageNumbers.StartingNumber = 1;
                //添加页码域
                object fieldpage = MsWord.WdFieldType.wdFieldPage;
                common.oWordApplic.Selection.Fields.Add(common.oWordApplic.Selection.Range,
                ref fieldpage, ref missing, ref missing);
                //居中对齐
                common.oWordApplic.Selection.ParagraphFormat.Alignment =
                MsWord.WdParagraphAlignment.wdAlignParagraphCenter;
                //本小节不链接到上一节
                common.oDoc.Sections[curSectionNum].Headers[Microsoft.Office.Interop.
                Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].LinkToPrevious = false;
                //切换入正文视图

                common.oWordApplic.ActiveWindow.ActivePane.View.SeekView =
                MsWord.WdSeekView.wdSeekMainDocument;

                
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            try
            {

                //common.oDoc.Fields[1].Update();
                
                //保存文档
                //Console.WriteLine(" 正在保存 Word 文档");
                //string doc_file_name = Directory.GetCurrentDirectory() + @"\content.doc";
                object fileName;
                fileName = common.doc_file_name;
                common.oDoc.SaveAs(ref fileName);
                common.oDoc.Close();
                //释放 COM 资源
                System.Runtime.InteropServices.Marshal.ReleaseComObject(common.oDoc);
                common.oDoc = null;
                common.oWordApplic.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(common.oWordApplic);
                common.oWordApplic = null;


                
                Spire.Doc.Document document = new Spire.Doc.Document(@"content.doc");
                Spire.Doc.Section section = document.AddSection();
                Spire.Doc.HeaderFooter footer = document.Sections[0].HeadersFooters.Footer;

                //Add text and image to the footer
                Spire.Doc.Documents.Paragraph paragraph = footer.AddParagraph();
                DocPicture footerImage = paragraph.AppendPicture(Image.FromFile("whu.png"));
                TextRange TR = paragraph.AppendText("Supported and Hosted by the non-profit Wikimedia Foundation.");

                //Format the text and image
                paragraph.Format.HorizontalAlignment = Spire.Doc.Documents.HorizontalAlignment.Left;
                TR.CharacterFormat.FontName = "Calibri";
                TR.CharacterFormat.Bold = true;


                //添加一个Shape,并设置其大小和样式
                Spire.Doc.Documents.Paragraph paragraph1 = section.AddParagraph();
                ShapeObject shape = paragraph1.AppendShape(240, 60, ShapeType.TextWave);

                //设置shape的位置
                shape.VerticalPosition = 80;
                shape.HorizontalPosition = 100;

                //写入艺术字文本和设置斜体
                shape.WordArt.Text = "艺术字效果";
                shape.WordArt.Italic = true;

                //设置文字填充样式
                shape.FillColor = System.Drawing.Color.Red;
                shape.StrokeColor = System.Drawing.Color.Gray;

                // Save the document and launch to see the output




                Spire.Doc.Documents.Paragraph paragraph2 = document.Sections[0].Paragraphs[2];
                Spire.Doc.Fields.Footnote footnote = paragraph2.AppendFootnote(FootnoteType.Footnote);
                DocumentObject obj = null;

                for (int i = 0; i < paragraph.ChildObjects.Count; i++)

                {

                    obj = paragraph.ChildObjects[i];

                    if (obj.DocumentObjectType == DocumentObjectType.TextRange)

                    {

                        TextRange textRange = obj as TextRange;

                        if (textRange.Text == "推箱子")

                        {

                            //为添加脚注的字符串设置加粗格式

                            textRange.CharacterFormat.Bold = true;

                            //插入脚注

                            paragraph.ChildObjects.Insert(i + 1, footnote);

                            break;

                        }

                    }

                }
                TextRange text = footnote.TextBody.AddParagraph().AppendText("推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力。游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。");

                text.CharacterFormat.FontName = "Arial Black";

                text.CharacterFormat.FontSize = 9;

                text.CharacterFormat.TextColor = Color.DarkGray;

                footnote.MarkerCharacterFormat.FontName = "Calibri";

                footnote.MarkerCharacterFormat.FontSize = 12;

                footnote.MarkerCharacterFormat.Bold = true;

                footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;




                document.SaveToFile("content.doc", FileFormat.Doc);
                //System.Diagnostics.Process.Start("text.docx");
            }
            catch (Exception e2)
            {
                MessageBox.Show(e2.Message);
            }
        }
    }
}

添加com引用

使用菜单:项目 -- 添加引用,在 COM 标签页添加名为 "MicrosoftWord 15.0 Object Library" Word 对象互操作库
在程序代码源文件中添加命名空间支持:
using MsWord=Microsoft.Office.Interop.Word;
所有操作 Word 对象的 COM 方法调用代码必须处在在异常处理代码块中,先创建 Word
Application 对象,它是 Word 对象操作的最开始,创建此对象时 WINWORD.EXE 进程启动。
MsWord.Application oWordApplic;//a reference to Wordapplication
MsWord.Document oDoc;//a reference to thedocument
try
{
}
catch (Exception e2)
{
MessageBox.Show(e2.Message);
}
后续所有操作 Word 对象的代码都要处于 Try 语法块中。

检测到旧的 word 档后删除旧文档。

string doc_file_name = Directory.GetCurrentDirectory() + @"\content.doc";
if (File.Exists(doc_file_name))
{
File.Delete(doc_file_name);
}
oWordApplic = new MsWord.Application();
object missing = System.Reflection.Missing.Value;

创建 Word 文档的小节

分节符在 Word 文档中是用来生成小节的控制符,每小节的页眉页脚的内容,页码格式等
保持一致。本项目生成的 Word 文档要求有不同的页码格式和页眉内容,首先插入 4 个分节符获得 5 个小节,第 1 小节是摘要内容,第 2 小节是目录,第 3 小节是第一章,第 4 小节是表 格,第 5 小节是图片。第 1, 2 小节的页码是大写罗马数字,第 3 4 5 小节的页码是阿拉伯 数字,且起始页码为 1

MsWord.Range curRange;
object curTxt;
int curSectionNum = 1;
oDoc = oWordApplic.Documents.Add(ref missing, ref missing, ref missing, ref missing);
oDoc.Activate();
Console.WriteLine(" 正在生成文档小节");
object section_nextPage = MsWord.WdBreakType.wdSectionBreakNextPage;
object page_break = MsWord.WdBreakType.wdPageBreak;
//添加三个分节符,共四个小节
for (int si = 0; si < 4; si++)
{
oDoc.Paragraphs[1].Range.InsertParagraphAfter();
oDoc.Paragraphs[1].Range.InsertBreak(ref section_nextPage);
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/194615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

西南科技大学电路分析基础实验A1(元件伏安特性测试 )

目录 一、实验目的 二、实验设备 三、预习内容(如:基本原理、电路图、计算值等) 1、测定线性电阻的伏安特性 2、二极管伏安特性测试 3、测定实际电压源的伏安特性 四、实验数据及结果分析(预习写必要实验步骤和表格) 1、测定线性电阻的伏安特性 2、二极管伏安特性测…

RT-DETR改进 | 2023 | InnerEIoU、InnerSIoU、InnerWIoU、InnerDIoU等二十余种损失函数

论文地址&#xff1a;官方Inner-IoU论文地址点击即可跳转 官方代码地址&#xff1a;官方代码地址-官方只放出了两种结合方式CIoU、SIoU 本位改进地址&#xff1a; 文末提供完整代码块-包括InnerEIoU、InnerCIoU、InnerDIoU等七种结合方式和其AlphaIoU变种结合起来可以达到二十…

JAVA进阶之路JVM-1:jvm基本组成、java程序执行过程、java程序的跨平台、静态编译器、jvm执行方式

JVM基本组成 当线上系统突然宕机&#xff0c;系统无法访问&#xff0c;甚至直接OOM&#xff1b; 线上系统响应速度太慢&#xff0c;优化系统性能过程中发现CPU占用过高&#xff0c;原因也许是因为JVM的GC次数过于频繁 因此&#xff0c;新项目上线&#xff0c;需要设置JVM的各…

算法-技巧-中等-寻找重复数,环形链表|,||

记录一下算法题的学习13 这次代码中运用到的技巧是「Floyd 判圈算法」&#xff08;又称龟兔赛跑算法&#xff09;&#xff0c;它是一个检测链表是否有环的算法 我们想象乌龟tortoise和兔子rabbit在链表上移动&#xff0c;乌龟爬的慢&#xff0c;兔子爬的快&#xff0c;当乌龟和…

Unity EventSystem的一些理解和使用

Unity的EventSystem是用于处理用户输入和交互的系统。它是Unity UI系统的核心组件之一&#xff0c;可以用于捕捉和分发各种事件&#xff0c;例如点击、拖拽、按键、射线等。 常用的属性和方法有以下这些&#xff1a; 属性&#xff1a; current: 获取当前的EventSystem实例。…

数据结构--->单链表

文章目录 链表链表的分类 单链表单链表的存储结构单链表主要实现的接口函数单链表尾插动态申请新节点单链表头插单链表的尾删单链表的头删在指定位置之前插入单链表查找插入 在指定位置之后插删除指定位置元素删除指定位置之后的元素顺序输出链表销毁单链表 顺序表和单链表的区…

随手写了个博客多平台发布脚本:Python自动发布文章到Wordpress

​ 引言 作为一名技术博主&#xff0c;提高博客发布效率是我们始终追求的目标。在这篇文章中&#xff0c;我将分享一个基于Python的脚本&#xff0c;能够实现博客多平台发布&#xff0c;具体来说&#xff0c;是自动发布文章到WordPress。通过这个简单而高效的脚本&#xff0c…

Android 单元测试初体验(二)-断言

[TOC](Android 单元测试初体验(二)-断言) 前言 当初在学校学安卓的时候&#xff0c;老师敢教学进度&#xff0c;翻到单元测试这一章节的时候提了两句&#xff0c;没有把单元测试当重点讲&#xff0c;只是说我们工作中几乎不会用到&#xff0c;果真在之前的几年工作当中我真的没…

人工智能与供应链行业融合:预测算法的通用化与实战化

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 让我们一起深入探索人工智能与供应链的融合&#xff0c;以及预测算法在实际应用中的价值&#xff01;&#x1f50d;&#x1f680; 文章目录 前言供应链预测算法的基本流程统计学习模型与机…

Gitea和Jenkins安装

Gitea Gitea&#xff1a;https://dl.gitea.com/gitea/1.21.0/ Jenkins&#xff1a;https://www.jenkins.io/download/ 数据库配置 可以参考官方文档-https://docs.gitea.cn/1.20/installation/database-prep&#xff0c;这里以MySQL作为讲解 MySQL 在数据库实例上&#xf…

LeetCode-面试题08.01 三步问题 C/C++实现 超详细思路及过程[E]

&#x1f388;归属专栏&#xff1a;深夜咖啡配算法 &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;摆了一个周末了&#xff0c;不能摆了&#xff0c;努力起来&#xff01;&#xff01; 文章目录 LeetCode-面试题08.01 三步问题&#x1f697;题…

SpringBoot : ch08 自动配置原理

前言 在现代的Java开发中&#xff0c;Spring Boot已经成为了一个备受欢迎的框架。它以其简化开发流程、提高效率和强大的功能而闻名&#xff0c;使得开发人员能够更加专注于业务逻辑的实现而不必过多地关注配置问题。 然而&#xff0c;你是否曾经好奇过Spring Boot是如何做到…

C++11线程以及线程同步

C11中提供的线程类std::thread,基于此类创建一个新的线程相对简单&#xff0c;只需要提供线程函数和线程对象即可 一.命名空间 this_thread C11 添加一个关于线程的命名空间std::this_pthread ,此命名空间中提供四个公共的成员函数&#xff1b; 1.1 get_id() 调用命名空间s…

识别验证码

背景 需求是要爬取某网站的数据, 已有账号密码, 但这个网站需要登录, 登录需要输入验证码 验证码样式如下 调研了Tesseract框架, 识别效果不佳. 后来使用ddddocr, 能正确识别. https://github.com/sml2h3/ddddocr 代码如下 def ocr():response requests.get(http://xxx/get…

【JavaScript】封装自己的JavaScript公共工具函数,并上传到npm中 进行下载

js公共方法封装方式都有哪些 全局函数 function greet(name) {console.log("Hello, " name "!"); }greet("Alice"); // 调用全局函数对象字面量 var utils {add: function(a, b) {return a b;},subtract: function(a, b) {return a - b;}…

使用opencv实现图片相似度检测

1.为什么学这个,我对图像处理非常感兴趣,我联想到海尔的指纹识别门锁是如何进行检测的,我在想不应该呀,单片机性能这么差,应该是使用了训练后的数据去检测图片的,如果我要实现草莓检测,知道它是不是草莓,我觉得单纯使用图片处理是不够的,我考虑过使用指纹模块来接触草莓从而实现…

芯片制程中温度的几种表示方法

在众多影响芯片制程的因素中&#xff0c;温度控制被视为一项至关重要的技术。温度是比较一种物质相对于另一种物质是冷还是热的衡量标准&#xff0c;它会影响到芯片的性能、可靠性以及最终产量。在不同的制程步骤中&#xff0c;温度扮演着各种各样的角色。但是在评价制程温度高…

振弦式轴力计和振弦采集仪组成的安全监测解决方案

振弦式轴力计和振弦采集仪组成的安全监测解决方案 振弦式轴力计和振弦采集仪是一种常用的结构安全监测工具&#xff0c;可以用于评估建筑物、桥梁、隧道或其他结构的结构健康状态和安全性能。这种监测方案较为先进、精确&#xff0c;并且能够监测长期的结构反应&#xff0c;因此…

Git指定分支或文件回退到指定版本

文章目录 一、分支回滚1.1、使用 git reset 命令1.2、使用 git revert 命令1.3、使用 git checkout 命令 二、文件回滚2.1、回滚未提交文件2.2、回滚已提交文件2.2.1、首先查看文件的历史版本2.2.2、找到你想要还原的版本2.2.3、将文件还原到你想要还原的版本2.2.4、提交代码 三…

便利高效双赢:无人机油气管道巡检全面升级

我国庞大的油气管道网络&#xff0c;包括原油、成品和天然气管道&#xff0c;因为地理区域广泛、建设年代久远、安全事故频发等现实因素&#xff0c;对管道的安全巡护与管理提出了更高的需求。在这一背景下&#xff0c;传统的人工巡护方式显然已经难以满足对高、精、准的要求。…