【转载】C#操作Word的超详细总结
C#操作Word的超详细总结
本文中用C#来操作Word,包括:
创建Word;
插入文字,选择文字,编辑文字的字号、粗细、颜色、下划线等;
设置段落的首行缩进、行距;
设置页面页边距和纸张大小;
设置页眉、页码;
插入图片,设置图片宽高以及给图片添加标题;
插入表格,格式化表格,往表格中插入数据;
保存Word,打印Word;
重新打开Word等。
Visual studio版本:Visual Studio 2012(2010应该也可以)
准备工作:
/*
1. 添加引用COM里面的 Microsoft Word 12.0 Object. Library 引用(12.0表示Word 2007版本)
2. 导命名空间
using MSWord =Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;
3. 把引用中的Microsoft.Office.Interop.Word的“属性”中的嵌入互操作设为False
*/
以下是全部代码:(代码有点长,但请不要有压力,直接复制进去就能直接成功运行)
1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Runtime.InteropServices;5 using System.Text;6 using MSWord = Microsoft.Office.Interop.Word;7 using System.IO;8 using System.Reflection;9 10 namespace Console_WordSkill_All11 {12 class Program13 {14 static void Main(string[] args)15 {16 object path; //文件路径变量17 string strContent; //文本内容变量18 MSWord.Application wordApp; //Word应用程序变量 19 MSWord.Document wordDoc; //Word文档变量20 21 path = Environment.CurrentDirectory + "\\MyWord_Print.doc";22 wordApp = new MSWord.ApplicationClass(); //初始化23 24 wordApp.Visible = true;//使文档可见25 26 //如果已存在,则删除27 if (File.Exists((string)path))28 {29 File.Delete((string)path);30 }31 32 //由于使用的是COM库,因此有许多变量需要用Missing.Value代替33 Object Nothing = Missing.Value;34 wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);35 36 #region 页面设置、页眉图片和文字设置,最后跳出页眉设置37 38 //页面设置39 wordDoc.PageSetup.PaperSize = MSWord.WdPaperSize.wdPaperA4;//设置纸张样式为A4纸40 wordDoc.PageSetup.Orientation = MSWord.WdOrientation.wdOrientPortrait;//排列方式为垂直方向41 wordDoc.PageSetup.TopMargin = 57.0f;42 wordDoc.PageSetup.BottomMargin = 57.0f;43 wordDoc.PageSetup.LeftMargin = 57.0f;44 wordDoc.PageSetup.RightMargin = 57.0f;45 wordDoc.PageSetup.HeaderDistance = 30.0f;//页眉位置46 47 //设置页眉48 wordApp.ActiveWindow.View.Type = MSWord.WdViewType.wdNormalView;//普通视图(即页面视图)样式49 wordApp.ActiveWindow.View.SeekView = MSWord.WdSeekView.wdSeekPrimaryHeader;//进入页眉设置,其中页眉边距在页面设置中已完成50 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight;//页眉中的文字右对齐51 52 53 //插入页眉图片(测试结果图片未插入成功)54 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;55 string headerfile = @"C:\Users\xiahui\Desktop\OficeProgram\3.jpg";56 MSWord.InlineShape shape1 = wordApp.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(headerfile, ref Nothing, ref Nothing, ref Nothing);57 shape1.Height = 5;//强行设置貌似无效,图片没有按设置的缩放——图片的比例并没有改变。58 shape1.Width = 20;59 wordApp.ActiveWindow.ActivePane.Selection.InsertAfter(" 文档页眉");//在页眉的图片后面追加几个字60 61 //去掉页眉的横线62 wordApp.ActiveWindow.ActivePane.Selection.ParagraphFormat.Borders[MSWord.WdBorderType.wdBorderBottom].LineStyle = MSWord.WdLineStyle.wdLineStyleNone;63 wordApp.ActiveWindow.ActivePane.Selection.Borders[MSWord.WdBorderType.wdBorderBottom].Visible = false;64 wordApp.ActiveWindow.ActivePane.View.SeekView = MSWord.WdSeekView.wdSeekMainDocument;//退出页眉设置65 #endregion66 67 #region 页码设置并添加页码68 69 //为当前页添加页码70 MSWord.PageNumbers pns = wordApp.Selection.Sections[1].Headers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers;//获取当前页的号码71 pns.NumberStyle = MSWord.WdPageNumberStyle.wdPageNumberStyleNumberInDash;//设置页码的风格,是Dash形还是圆形的72 pns.HeadingLevelForChapter = 0;73 pns.IncludeChapterNumber = false;74 pns.RestartNumberingAtSection = false;75 pns.StartingNumber = 0; //开始页页码?76 object pagenmbetal = MSWord.WdPageNumberAlignment.wdAlignPageNumberCenter;//将号码设置在中间77 object first = true;78 wordApp.Selection.Sections[1].Footers[MSWord.WdHeaderFooterIndex.wdHeaderFooterEvenPages].PageNumbers.Add(ref pagenmbetal, ref first);79 80 #endregion81 82 #region 行间距与缩进、文本字体、字号、加粗、斜体、颜色、下划线、下划线颜色设置83 84 wordApp.Selection.ParagraphFormat.LineSpacing = 16f;//设置文档的行间距85 wordApp.Selection.ParagraphFormat.FirstLineIndent = 30;//首行缩进的长度86 //写入普通文本87 strContent = "我是普通文本\n";88 wordDoc.Paragraphs.Last.Range.Text = strContent;89 90 wordDoc.Paragraphs.Last.Range.Text = "我再加一行试试,这里不加'\\n'";91 //直接添加段,不是覆盖( += )92 wordDoc.Paragraphs.Last.Range.Text += "不会覆盖的,";93 94 //添加在此段的文字后面,不是新段落95 wordDoc.Paragraphs.Last.Range.InsertAfter("这是后面的内容\n");96 97 //将文档的前4个字替换成"哥是替换文字",并将其颜色设为红色98 object start = 0;99 object end = 4; 100 MSWord.Range rang = wordDoc.Range(ref start, ref end); 101 rang.Font.Color = MSWord.WdColor.wdColorRed; 102 rang.Text = "哥是替换文字"; 103 wordDoc.Range(ref start, ref end); 104 105 //写入黑体文本 106 object unite = MSWord.WdUnits.wdStory; 107 wordApp.Selection.EndKey(ref unite, ref Nothing);//将光标移到文本末尾 108 wordApp.Selection.ParagraphFormat.FirstLineIndent = 0;//取消首行缩进的长度 109 strContent = "这是黑体文本\n"; 110 wordDoc.Paragraphs.Last.Range.Font.Name = "黑体"; 111 wordDoc.Paragraphs.Last.Range.Text = strContent; 112 113 //写入加粗文本 114 strContent = "这是粗体文本\n"; // 115 wordApp.Selection.EndKey(ref unite, ref Nothing);//这一句不加,有时候好像也不出问题,不过还是加了安全 116 wordDoc.Paragraphs.Last.Range.Font.Bold = 1; 117 wordDoc.Paragraphs.Last.Range.Text = strContent; 118 119 //写入15号字体文本 120 strContent = "我这个文本的字号是15号,而且是宋体\n"; 121 wordApp.Selection.EndKey(ref unite, ref Nothing); 122 wordDoc.Paragraphs.Last.Range.Font.Size = 15; 123 wordDoc.Paragraphs.Last.Range.Font.Name = "宋体"; 124 wordDoc.Paragraphs.Last.Range.Text = strContent; 125 126 //写入斜体文本 127 strContent = "我是斜体字文本\n"; 128 wordApp.Selection.EndKey(ref unite, ref Nothing); 129 wordDoc.Paragraphs.Last.Range.Font.Italic = 1; 130 wordDoc.Paragraphs.Last.Range.Text = strContent; 131 132 //写入蓝色文本 133 strContent = "我是蓝色的文本\n"; 134 wordApp.Selection.EndKey(ref unite, ref Nothing); 135 wordDoc.Paragraphs.Last.Range.Font.Color = MSWord.WdColor.wdColorBlue; 136 wordDoc.Paragraphs.Last.Range.Text = strContent; 137 138 //写入下划线文本 139 strContent = "我是下划线文本\n"; 140 wordApp.Selection.EndKey(ref unite, ref Nothing); 141 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineThick; 142 wordDoc.Paragraphs.Last.Range.Text = strContent; 143 144 //写入红色下画线文本 145 strContent = "我是点线下划线,并且下划线是红色的\n"; 146 wordApp.Selection.EndKey(ref unite, ref Nothing); 147 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineDottedHeavy; 148 wordDoc.Paragraphs.Last.Range.Font.UnderlineColor = MSWord.WdColor.wdColorRed; 149 wordDoc.Paragraphs.Last.Range.Text = strContent; 150 151 //取消下划线,并且将字号调整为12号 152 strContent = "我他妈不要下划线了,并且设置字号为12号,黑色不要斜体\n"; 153 wordApp.Selection.EndKey(ref unite, ref Nothing); 154 wordDoc.Paragraphs.Last.Range.Font.Size = 12; 155 wordDoc.Paragraphs.Last.Range.Font.Underline = MSWord.WdUnderline.wdUnderlineNone; 156 wordDoc.Paragraphs.Last.Range.Font.Color = MSWord.WdColor.wdColorBlack; 157 wordDoc.Paragraphs.Last.Range.Font.Italic = 0; 158 wordDoc.Paragraphs.Last.Range.Text = strContent; 159 160 161 #endregion 162 163 164 #region 插入图片、居中显示,设置图片的绝对尺寸和缩放尺寸,并给图片添加标题 165 166 wordApp.Selection.EndKey(ref unite, ref Nothing); //将光标移动到文档末尾 167 //图片文件的路径 168 string filename = Environment.CurrentDirectory + "\\6.jpg"; 169 //要向Word文档中插入图片的位置 170 Object range = wordDoc.Paragraphs.Last.Range; 171 //定义该插入的图片是否为外部链接 172 Object linkToFile = false; //默认,这里貌似设置为bool类型更清晰一些 173 //定义要插入的图片是否随Word文档一起保存 174 Object saveWithDocument = true; //默认 175 //使用InlineShapes.AddPicture方法(【即“嵌入型”】)插入图片 176 wordDoc.InlineShapes.AddPicture(filename, ref linkToFile, ref saveWithDocument, ref range); 177 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//居中显示图片 178 179 //设置图片宽高的绝对大小 180 181 //wordDoc.InlineShapes[1].Width = 200; 182 //wordDoc.InlineShapes[1].Height = 150; 183 //按比例缩放大小 184 185 wordDoc.InlineShapes[1].ScaleWidth = 20;//缩小到20% ? 186 wordDoc.InlineShapes[1].ScaleHeight = 20; 187 188 //在图下方居中添加图片标题 189 190 wordDoc.Content.InsertAfter("\n");//这一句与下一句的顺序不能颠倒,原因还没搞透 191 wordApp.Selection.EndKey(ref unite, ref Nothing); 192 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter; 193 wordApp.Selection.Font.Size = 10;//字体大小 194 wordApp.Selection.TypeText("图1 测试图片\n"); 195 196 #endregion 197 198 #region 添加表格、填充数据、设置表格行列宽高、合并单元格、添加表头斜线、给单元格添加图片 199 wordDoc.Content.InsertAfter("\n");//这一句与下一句的顺序不能颠倒,原因还没搞透 200 wordApp.Selection.EndKey(ref unite, ref Nothing); //将光标移动到文档末尾 201 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphLeft; 202 //object WdLine2 = MSWord.WdUnits.wdLine;//换一行; 203 //wordApp.Selection.MoveDown(ref WdLine2, 6, ref Nothing);//向下跨15行输入表格,这样表格就在文字下方了,不过这是非主流的方法 204 205 //设置表格的行数和列数 206 int tableRow = 6; 207 int tableColumn = 6; 208 209 //定义一个Word中的表格对象 210 MSWord.Table table = wordDoc.Tables.Add(wordApp.Selection.Range, 211 tableRow, tableColumn, ref Nothing, ref Nothing); 212 213 //默认创建的表格没有边框,这里修改其属性,使得创建的表格带有边框 214 table.Borders.Enable = 1;//这个值可以设置得很大,例如5、13等等 215 216 //表格的索引是从1开始的。 217 wordDoc.Tables[1].Cell(1, 1).Range.Text = "列\n行"; 218 for (int i = 1; i < tableRow; i++) 219 { 220 for (int j = 1; j < tableColumn; j++) 221 { 222 if (i == 1) 223 { 224 table.Cell(i, j + 1).Range.Text = "Column " + j;//填充每列的标题 225 } 226 if (j == 1) 227 { 228 table.Cell(i + 1, j).Range.Text = "Row " + i; //填充每行的标题 229 } 230 table.Cell(i + 1, j + 1).Range.Text = i + "行 " + j + "列"; //填充表格的各个小格子 231 } 232 } 233 234 235 //添加行 236 table.Rows.Add(ref Nothing); 237 table.Rows[tableRow + 1].Height = 35;//设置新增加的这行表格的高度 238 //向新添加的行的单元格中添加图片 239 string FileName = Environment.CurrentDirectory + "\\6.jpg";//图片所在路径 240 object LinkToFile = false; 241 object SaveWithDocument = true; 242 object Anchor = table.Cell(tableRow + 1, tableColumn).Range;//选中要添加图片的单元格 243 wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor); 244 245 //由于是本文档的第2张图,所以这里是InlineShapes[2] 246 wordDoc.Application.ActiveDocument.InlineShapes[2].Width = 50;//图片宽度 247 wordDoc.Application.ActiveDocument.InlineShapes[2].Height = 35;//图片高度 248 249 // 将图片设置为四周环绕型 250 MSWord.Shape s = wordDoc.Application.ActiveDocument.InlineShapes[2].ConvertToShape(); 251 s.WrapFormat.Type = MSWord.WdWrapType.wdWrapSquare; 252 253 254 //设置table样式 255 table.Rows.HeightRule = MSWord.WdRowHeightRule.wdRowHeightAtLeast;//高度规则是:行高有最低值下限? 256 table.Rows.Height = wordApp.CentimetersToPoints(float.Parse("0.8"));// 257 258 table.Range.Font.Size = 10.5F; 259 table.Range.Font.Bold = 0; 260 261 table.Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;//表格文本居中 262 table.Range.Cells.VerticalAlignment = MSWord.WdCellVerticalAlignment.wdCellAlignVerticalBottom;//文本垂直贴到底部 263 //设置table边框样式 264 table.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleDouble;//表格外框是双线 265 table.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle;//表格内框是单线 266 267 table.Rows[1].Range.Font.Bold = 1;//加粗 268 table.Rows[1].Range.Font.Size = 12F; 269 table.Cell(1, 1).Range.Font.Size = 10.5F; 270 wordApp.Selection.Cells.Height = 30;//所有单元格的高度 271 272 //除第一行外,其他行的行高都设置为20 273 for (int i = 2; i <= tableRow; i++) 274 { 275 table.Rows[i].Height = 20; 276 } 277 278 //将表格左上角的单元格里的文字(“行” 和 “列”)居右 279 table.Cell(1, 1).Range.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight; 280 //将表格左上角的单元格里面下面的“列”字移到左边,相比上一行就是将ParagraphFormat改成了Paragraphs[2].Format 281 table.Cell(1, 1).Range.Paragraphs[2].Format.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphLeft; 282 283 table.Columns[1].Width = 50;//将第 1列宽度设置为50 284 285 //将其他列的宽度都设置为75 286 for (int i = 2; i <= tableColumn; i++) 287 { 288 table.Columns[i].Width = 75; 289 } 290 291 292 //添加表头斜线,并设置表头的样式 293 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].Visible = true; 294 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].Color = MSWord.WdColor.wdColorRed; 295 table.Cell(1, 1).Borders[MSWord.WdBorderType.wdBorderDiagonalDown].LineWidth = MSWord.WdLineWidth.wdLineWidth150pt; 296 297 //合并单元格 298 table.Cell(4, 4).Merge(table.Cell(4, 5));//横向合并 299 300 table.Cell(2, 3).Merge(table.Cell(4, 3));//纵向合并,合并(2,3),(3,3),(4,3) 301 302 #endregion 303 304 wordApp.Selection.EndKey(ref unite, ref Nothing); //将光标移动到文档末尾 305 306 wordDoc.Content.InsertAfter("\n"); 307 wordDoc.Content.InsertAfter("就写这么多,算了吧!2016.09.27"); 308 309 310 311 //WdSaveFormat为Word 2003文档的保存格式 312 object format = MSWord.WdSaveFormat.wdFormatDocument;// office 2007就是wdFormatDocumentDefault 313 //将wordDoc文档对象的内容保存为DOCX文档 314 wordDoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing); 315 //关闭wordDoc文档对象 316 317 //看是不是要打印 318 //wordDoc.PrintOut(); 319 320 321 322 wordDoc.Close(ref Nothing, ref Nothing, ref Nothing); 323 //关闭wordApp组件对象 324 wordApp.Quit(ref Nothing, ref Nothing, ref Nothing); 325 Console.WriteLine(path + " 创建完毕!"); 326 Console.ReadKey(); 327 328 329 //我还要打开这个文档玩玩 330 MSWord.Application app = new MSWord.Application(); 331 MSWord.Document doc = null; 332 try 333 { 334 335 object unknow = Type.Missing; 336 app.Visible = true; 337 string str = Environment.CurrentDirectory + "\\MyWord_Print.doc"; 338 object file = str; 339 doc = app.Documents.Open(ref file, 340 ref unknow, ref unknow, ref unknow, ref unknow, 341 ref unknow, ref unknow, ref unknow, ref unknow, 342 ref unknow, ref unknow, ref unknow, ref unknow, 343 ref unknow, ref unknow, ref unknow); 344 string temp = doc.Paragraphs[1].Range.Text.Trim(); 345 Console.WriteLine("你他妈输出temp干嘛?"); 346 } 347 catch (Exception ex) 348 { 349 Console.WriteLine(ex.Message); 350 } 351 wordDoc = doc; 352 wordDoc.Paragraphs.Last.Range.Text += "我真的不打算再写了,就写这么多吧"; 353 354 Console.ReadKey(); 355 } 356 357 } 358 }
生成编辑的Word内容如下图所示:
参考资料:
http://blog.csdn.net/ruby97/article/details/7406806
http://blog.csdn.net/yhrun/article/details/7674540
http://www.cnblogs.com/eye-like/p/4121219.html
http://www.cnblogs.com/knowledgesea/archive/2013/05/24/3095376.html
http://www.cnblogs.com/shi2172843/p/5848116.html
https://msdn.microsoft.com/en-us/library/bb257531(v=office.12).aspx
http://wenku.baidu.com/view/80ec0a6c1eb91a37f1115cab.html?from=search
【转载】C#操作Word的超详细总结相关推荐
- python操作手机app超详细步骤
〝 古人学问遗无力,少壮功夫老始成 〞 python操作手机app超详细步骤,现在很多app的都要刷经验打怪升级啥的,这些枯燥千篇一律但是很耗费时间的玩法,可以使用app自动去操作,解放双手,释放时间 ...
- c语言有关字符的操作,C语言字符操作总结大全(超详细).doc
C语言字符串操作总结大全(超详细) 作者: 本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n ...
- 三、Hive数据仓库应用之Hive数据操作语言(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)
Hive远程模式部署参考: 一.Hive数据仓库应用之Hive部署(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7) Hive数据定义语言 ...
- python操作json字符串,超详细的Python文件操作知识
来自:CSDN,作者:南枝向暖北枝寒MA 链接:https://blog.csdn.net/mall_lucy/article/details/104547365 [导语]:python进行文件操作, ...
- c++ 字符串连接_C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...
- C语言文件操作函数总结——超详细
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 文件与流 在C语言中有三种标准流: stdin(standard input stream)标 ...
- 抖音直播运营操作技巧(超详细)
短视频直播室2020年开年就启动了一个原点,从直播睡觉到直播云蹦迪,虽然现在很少有直播睡觉的,但是上段时间直播睡觉上百万能观看,云蹦迪一场收入200多万,这无疑透露着一个信号,直播产业会进入发展周期, ...
- c语言1066字符分类统计,C语言字符串操作总结大全(超详细)
1)字符串操作strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字 ...
- [转载] Java实现归并排序(超详细,新手请进)
参考链接: Java中将数组合并为的新数组 归并排序 大家好,这是我第一次在CSDN上写东西,因为我一直觉得有需要就去找别人的blog看看就好,但我发现自己写出来的东西确实能加深记忆.我半路出家,属实 ...
最新文章
- 我也说说Emacs吧(6) - Lisp速成
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
- 李飞飞、颜宁等8位华人学者入选美国艺术与科学院院士,其中7位女性
- AngularJS directive入门例子
- 20. A *p=NULL,p 可以调用 A 类里面的函数嘛?
- Redis数据库操作指令
- Sublime 解决目录显示为方块的问题
- CentOS7.4中搭建lnmp环境
- Optimizing regular expressions in Java
- Objective -C-2
- c语言除法在全局区,深入C语言内存区域分配(进程的各个段)详解
- linux命令(56):环境变量:/etc/profile、/etc/bashrc 、~/.profile、~/.bashrc
- linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程
- 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
- LIO-SAM探秘之文章索引
- Java基础-----基类Object源码分析
- 基因组时代线粒体基因组拼装策略及软件应用现状
- 论文结构及其内容简介
- NodeJs ES6 写简单爬虫 爬小说网站《我当方士那些年》
- jxl操作合并单元格复杂表头
热门文章
- python 淘宝滑块验证_pyppeteer硬钢掉淘宝登入的滑块验证
- 如何给图片更改格式?jpg转webp怎么操作
- 英国女王伊丽莎白二世登基60周年演讲(视频+双语)
- java 2 实用教程(第五版)第五章课后编程题:设计一个动物声音模拟器,希望模拟器可以模拟许多的动物的叫声。
- web直播、即时聊天流程图。第三方平台
- 西行漫记(16):C#长得太丑了
- 什么是伪静态?网站伪静态有什么作用?
- 当你收到面试通知后,通过如下的准备可以大大提升面试成功率
- obs windows 编译 obs browser
- [AGC018F] Two Trees