C#通过模板文件(.dot)生成Word文档(.doc)以及PDF文档(.pdf)

编程入门 行业动态 更新时间:2024-10-10 06:13:05

C#通过模板文件(.dot)生成Word<a href=https://www.elefans.com/category/jswz/34/1770955.html style=文档(.doc)以及PDF文档(.pdf)"/>

C#通过模板文件(.dot)生成Word文档(.doc)以及PDF文档(.pdf)

详情文件C#程序见如下资源:

 1.方法一:常规利用带“标签”的dot模板文件替换字符生成对应文档

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 Microsoft.Office.Interop.Word;namespace 诊断报告打印
{public partial class Main : Form{public Main(){InitializeComponent();}string DiagnoseDate;   //诊断日期string Offices;    //科室string PathologyID;    //病理号string PatientAge;      //患者年龄string PatientName;     //患者姓名string PatientSex;      //患者性别string SampleType;      //样本类型string SongZhenYiShi;    //送诊医师string ZhuYuanHao;       //住院号//输出诊断报告private void btn_outputReport_Click(object sender, EventArgs e){object ownmis = System.Reflection.Missing.Value;Microsoft.Office.Interop.Word._Application ownword = new Microsoft.Office.Interop.Word.Application();ownword.Visible = false;object owntemplate = AppDomain.CurrentDomain.BaseDirectory + @"/Template.dot";Microsoft.Office.Interop.Word._Document ownDoc = ownword.Documents.Add(ref owntemplate, ref ownmis, ref ownmis, ref ownmis);object[] ownBookmark = new object[9];ownBookmark[0] = "PatientName";ownBookmark[1] = "PatientSex";ownBookmark[2] = "PatientAge";ownBookmark[3] = "DiagnoseDate";ownBookmark[4] = "Offices";ownBookmark[5] = "ZhuYuanHao";ownBookmark[6] = "SongZhenYiShi";ownBookmark[7] = "SampleType";ownBookmark[8] = "PathologyID";PatientName = textBox_patientName.Text;PatientSex = comboBox_patientSex.Text;PatientAge = textBox_patientAge.Text;DiagnoseDate = dateTimePicker1.Text;Offices = textBox_Office.Text;ZhuYuanHao = textBox_ZhuYuanHao.Text;SongZhenYiShi = textBox_SongZhenYiShi.Text;SampleType = comboBox_SampleType.Text;PathologyID = DateTime.Now.ToString("yyyy-MM-dd");ownDoc.Bookmarks.get_Item(ref ownBookmark[0]).Range.Text = PatientName;ownDoc.Bookmarks.get_Item(ref ownBookmark[1]).Range.Text = PatientSex;ownDoc.Bookmarks.get_Item(ref ownBookmark[2]).Range.Text = PatientAge;ownDoc.Bookmarks.get_Item(ref ownBookmark[3]).Range.Text = DiagnoseDate;ownDoc.Bookmarks.get_Item(ref ownBookmark[4]).Range.Text = Offices;ownDoc.Bookmarks.get_Item(ref ownBookmark[5]).Range.Text = ZhuYuanHao;ownDoc.Bookmarks.get_Item(ref ownBookmark[6]).Range.Text = SongZhenYiShi;ownDoc.Bookmarks.get_Item(ref ownBookmark[7]).Range.Text = SampleType;ownDoc.Bookmarks.get_Item(ref ownBookmark[8]).Range.Text = PathologyID;SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "Word Document(*.doc)|*.doc";    //以下两行word存储没懂 要查SaveFileDialog这个类sfd.DefaultExt = "Word Document(*.doc)|*.doc";if (sfd.ShowDialog() == DialogResult.OK){object filename = sfd.FileName;ownDoc.SaveAs(ref filename, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis);ownDoc.Close(ref ownmis, ref ownmis, ref ownmis);ownword.Quit(ref ownmis, ref ownmis, ref ownmis);MessageBox.Show("输出诊断报告成功!","Tip Message");}}}
}

2.封装Report类,直接调用类的方法来进行对Word模板文件操作【包含插入字符、文字、图片以及表格】

第一步,制作模板
 
1.新建一个文档,设置文档内容。
2.在相应位置插入书签;将鼠标定位到要插入书签的位置,点击“插入”>“书签”,弹出对话框,输入书签名,点击“添加”按钮。
3.保存模板,命名为“模板1.dot”或者“模板1.doc”

第二步,设置项目中的引用

1.右击“解决方案资源管理器”中的项目目录下的“引用”,选择“添加引用”,打开“添加引用”对话框
2.在“添加引用”对话框中,选择“COM”>“Microsoft Word 16.0 Object Library”,点击“确定”按钮
3.相同操作打开“添加引用”对话框中,选择“浏览”项,查找到”Microsoft.Office.Interop.Word.dll”文件,选中它,点击“确定”按钮
 
注意:此处要查找的“Microsoft.Office.Interop.Word.dll”版本必须为“11.*.*.*”,“*”代表数字

第三步,编码

这一步分成两个部分
第一部分,Report类的编码
这部分我已经封装好,为文件“Report.cs”,可以直接使用

具体实现代码如下:(代码中有比较详细的注释)

using System;
using System.Collections.Generic;
using Microsoft.Office.Interop.Word;namespace 诊断报告打印
{public class Report{private Application wordApp;private Document wordDoc;public Application Application{get{return wordApp;}set{wordApp = value;}}public Document Document{get{return wordDoc;}set{wordDoc = value;}}/// <summary>/// 根据模板创建文件/// </summary>/// <param name="FilePath"></param>public void CreateNewDovument(string FilePath){killWinWordProcess();wordApp = new Application();wordApp.DisplayAlerts = WdAlertLevel.wdAlertsNone;wordApp.Visible = false;object missing = System.Reflection.Missing.Value;object templateName = FilePath;wordDoc = wordApp.Documents.Open(ref templateName, ref missing,ref missing, ref missing, ref missing, ref missing, ref missing,ref missing, ref missing, ref missing, ref missing, ref missing,ref missing, ref missing, ref missing, ref missing);}//保存新文件public void SaveDocument(string filePath){object fileName = filePath;object format = WdSaveFormat.wdFormatDocument;//保存格式object miss = System.Reflection.Missing.Value;wordDoc.SaveAs(ref fileName, ref format, ref miss,ref miss, ref miss, ref miss, ref miss,ref miss, ref miss, ref miss, ref miss,ref miss, ref miss, ref miss, ref miss,ref miss);//关闭wordDoc,wordApp对象object SaveChanges = WdSaveOptions.wdSaveChanges;object OriginalFormat = WdOriginalFormat.wdOriginalDocumentFormat;object RouteDocument = false;wordDoc.Close(ref SaveChanges, ref OriginalFormat, ref RouteDocument);System.Windows.Forms.DialogResult MsgResult = System.Windows.Forms.MessageBox.Show("病理报告已生成!\r\n请问是否需要打开查看?","Tip Message", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question);if (MsgResult == System.Windows.Forms.DialogResult.Yes)  //确认打开报告{System.Diagnostics.Process.Start(filePath);}else{System.Windows.Forms.MessageBox.Show("报告已存在在本地根目录","Store Successful");return;}}//在书签处插入值public bool InsertValue(string bookmark, string value){object bkObj = bookmark;if (wordApp.ActiveDocument.Bookmarks.Exists(bookmark)){wordApp.ActiveDocument.Bookmarks.get_Item(ref bkObj).Select();wordApp.Selection.TypeText(value);return true;}return false;}//插入表格,bookmark书签public Table InsertTable(string bookmark, int rows, int columns, float width){object miss = System.Reflection.Missing.Value;object oStart = bookmark;Range range = wordDoc.Bookmarks.get_Item(ref oStart).Range;//表格插入位置Table newTable = wordDoc.Tables.Add(range, rows, columns, ref miss, ref miss);//设置表的格式newTable.Borders.Enable = 1; //允许有边框,默认没有边框(为0时报错,1为实线边框,2、3为虚线边框,以后的数字没试过)newTable.Borders.OutsideLineWidth = WdLineWidth.wdLineWidth050pt;//边框宽度if (width != 0){newTable.PreferredWidth = width;//表格宽度}newTable.AllowPageBreaks = false;return newTable;}//合并单元格 表名,开始行号,开始列号,结束行号,结束列号public void MergeCell(Microsoft.Office.Interop.Word.Table table, int row1, int column1, int row2, int column2){table.Cell(row1, column1).Merge(table.Cell(row2, column2));}//设置表格内容对齐方式Align水平方向,Vertical垂直方向(左对齐,居中对齐,右对齐分别对应Align和Vertical的值为-1,0,1)public void SetParagraph_Table(Microsoft.Office.Interop.Word.Table table, int Align, int Vertical){switch (Align){case -1: table.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; break;//左对齐case 0: table.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter; break;//水平居中case 1: table.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight; break;//右对齐}switch (Vertical){case -1: table.Range.Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalTop; break;//顶端对齐case 0: table.Range.Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter; break;//垂直居中case 1: table.Range.Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalBottom; break;//底端对齐}}//设置表格字体public void SetFont_Table(Microsoft.Office.Interop.Word.Table table, string fontName, double size){if (size != 0){table.Range.Font.Size = Convert.ToSingle(size);}if (fontName != ""){table.Range.Font.Name = fontName;}}//是否使用边框,n表格的序号,use是或否public void UseBorder(int n, bool use){if (use){wordDoc.Content.Tables[n].Borders.Enable = 1; //允许有边框,默认没有边框(为0时无边框,1为实线边框,2、3为虚线边框,以后的数字没试过)}else{wordDoc.Content.Tables[n].Borders.Enable = 2; //允许有边框,默认没有边框(为0时无边框,1为实线边框,2、3为虚线边框,以后的数字没试过)}}//给表格插入一行,n表格的序号从1开始记public void AddRow(int n){object miss = System.Reflection.Missing.Value;wordDoc.Content.Tables[n].Rows.Add(ref miss);}//给表格添加一行public void AddRow(Microsoft.Office.Interop.Word.Table table){object miss = System.Reflection.Missing.Value;table.Rows.Add(ref miss);}//给表格插入rows行,n为表格的序号public void AddRow(int n, int rows){object miss = System.Reflection.Missing.Value;Microsoft.Office.Interop.Word.Table table = wordDoc.Content.Tables[n];for (int i = 0; i < rows; i++){table.Rows.Add(ref miss);}}//给表格中单元格插入元素,table所在表格,row行号,column列号,value插入的元素public void InsertCell(Microsoft.Office.Interop.Word.Table table, int row, int column, string value){table.Cell(row, column).Range.Text = value;}//给表格中单元格插入元素,n表格的序号从1开始记,row行号,column列号,value插入的元素public void InsertCell(int n, int row, int column, string value){wordDoc.Content.Tables[n].Cell(row, column).Range.Text = value;}//给表格插入一行数据,n为表格的序号,row行号,columns列数,values插入的值public void InsertCell(int n, int row, int columns, List<string> values){Microsoft.Office.Interop.Word.Table table = wordDoc.Content.Tables[n];for (int i = 0; i < columns; i++){table.Cell(row, i + 1).Range.Text = values[i];}}//插入图片public void InsertPicture(string bookmark, string picturePath, float width, float hight){object miss = System.Reflection.Missing.Value;object oStart = bookmark;Object linkToFile = false;    //图片是否为外部链接Object saveWithDocument = true; //图片是否随文档一起保存object range = wordDoc.Bookmarks.get_Item(ref oStart).Range;//图片插入位置wordDoc.InlineShapes.AddPicture(picturePath, ref linkToFile, ref saveWithDocument, ref range);wordDoc.Application.ActiveDocument.InlineShapes[1].Width = width; //设置图片宽度wordDoc.Application.ActiveDocument.InlineShapes[1].Height = hight; //设置图片高度}//插入一段文字,text为文字内容public void InsertText(string bookmark, string text){object oStart = bookmark;object range = wordDoc.Bookmarks.get_Item(ref oStart).Range;Paragraph wp = wordDoc.Content.Paragraphs.Add(ref range);wp.Format.SpaceBefore = 6;wp.Range.Text = text;wp.Format.SpaceAfter = 24;wp.Range.InsertParagraphAfter();wordDoc.Paragraphs.Last.Range.Text = "\n";}//杀掉***.exe进程public void killWinWordProcess(){System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("诊断报告打印");foreach (System.Diagnostics.Process process in processes){bool b = process.MainWindowTitle == "";if (b){process.Kill();}}}}}

第二部分,具体生成文档的编码

代码见下文:
 
1.首先需要载入模板
Report report =new Report();
report.CreateNewDocument(TemPath); //模板路径
 
2.插入一个值
report.InsertValue("Bookmark_value","世界杯");//在书签“Bookmark_value”处插入值
 
3.创建一个表格
Table table =report.InsertTable("Bookmark_table", 2, 3, 0); //在书签“Bookmark_table”处插入2行3列行宽最大的表
 
4.合并单元格
report.MergeCell(table, 1, 1, 1, 3); //表名,开始行号,开始列号,结束行号,结束列号
 
5.表格添加一行
report.AddRow(table); //表名
 
6.在单元格中插入值
report.InsertCell(table, 2, 1,"R2C1");//表名,行号,列号,值
 
7.设置表格中文字的对齐方式
report.SetParagraph_Table(table, -1, 0);//水平方向左对齐,垂直方向居中对齐
 
8.设置表格字体
report.SetFont_Table(table,"宋体", 9);//宋体9磅
 
9.给现有的表格添加一行
report.AddRow(1);//给模板中第一个表格添加一行
 
10.确定现有的表格是否使用边框
report.UseBorder(1,true); //模板中第一个表格使用实线边框
 
11.给现有的表格添加多行
report.AddRow(1, 2);//给模板中第一个表格插入2行
 
12.给现有的表格插入一行数据
string[] values={"英超", "意甲", "德甲","西甲", "法甲" };
report.InsertCell(1, 2, 5,values); //给模板中第一个表格的第二行的5列分别插入数据
 
13.插入图片
string picturePath = @"C:\Documents and Settings\Administrator\桌面\1.jpg";
report.InsertPicture("Bookmark_picture",picturePath, 150, 150); //书签位置,图片路径,图片宽度,图片高度
 
14.插入一段文字
string text = "长期从事电脑操作者,应多吃一些新鲜的蔬菜和水果,同时增加维生素A、B1、C、E的摄入。为预防角膜干燥、眼干涩、视力下降、甚至出现夜盲等,电 脑操作者应多吃富含维生素A的食物,如豆制品、鱼、牛奶、核桃、青菜、大白菜、空心菜、西红柿及新鲜水果等。";
report.InsertText("Bookmark_text",text);
 
15.最后保存文档
report.SaveDocument(RepPath); //文档路径
 
第四步,运行程序生成文档,并查看生成的文档

希望本文所述对大家的C#程序设计有所帮助。

将对应的Word文档保存为PDF格式输出【对应代码如下】

//将对应的Word文档保存为PDF格式输出public static string WordToPDF(string sourcePath){if (string.IsNullOrEmpty(sourcePath)){return "";}Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();Microsoft.Office.Interop.Word.Document document = null;try{application.Visible = false;document = application.Documents.Open(sourcePath);string ext = sourcePath.Substring(sourcePath.LastIndexOf('.'));string PDFPath = sourcePath.Replace(ext, ".pdf");if (File.Exists(@PDFPath)){File.Delete(@PDFPath);}document.ExportAsFixedFormat(PDFPath, WdExportFormat.wdExportFormatPDF);return PDFPath;}catch (Exception){return "";}}//======================================================第二种方法
public bool WordToPDF(string sourcePath){bool result = false;Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();Microsoft.Office.Interop.Word.Document document = null;try{application.Visible = false;document = application.Documents.Open(sourcePath);string PDFPath = sourcePath.Replace(".doc", ".pdf");//pdf存放位置if (!File.Exists(@PDFPath))//存在PDF,不需要继续转换{document.ExportAsFixedFormat(PDFPath, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);}result = true;}catch (Exception e){Console.WriteLine(e.Message);result = false;}finally{document.Close();}return result;}

PDF一键打印技术:

//一键打印功能private void pdfPrint(string filePath){//一键打印功能Process pr = new Process();pr.StartInfo.FileName = filePath;//文件全称-包括文件后缀pr.StartInfo.CreateNoWindow = true;pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;pr.StartInfo.Verb = "Print";pr.Start();}//一键打印PDF诊断报告private void btn_PrintPDF_Click(object sender, EventArgs e){pdfPrint(PDF_Path);  //调用方法一键打印即完成}

★完整Main函数类下的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;namespace 诊断报告打印
{public partial class Main : Form{public Main(){InitializeComponent();}string DiagnoseDate;   //诊断日期string Offices;    //科室string PathologyID;    //病理号string PatientAge;      //患者年龄string PatientName;     //患者姓名string PatientSex;      //患者性别string SampleType;      //样本类型string SongZhenYiShi;    //送诊医师string ZhuYuanHao;       //住院号//输出诊断报告private void btn_outputReport_Click(object sender, EventArgs e){#region 已实现功能代码//object ownmis = System.Reflection.Missing.Value;//_Application ownword = new Microsoft.Office.Interop.Word.Application();//ownword.Visible = false;//object owntemplate = AppDomain.CurrentDomain.BaseDirectory + @"/Template.dot";//_Document ownDoc = ownword.Documents.Add(ref owntemplate, ref ownmis, ref ownmis, ref ownmis);//object[] ownBookmark = new object[9];//ownBookmark[0] = "PatientName";//ownBookmark[1] = "PatientSex";//ownBookmark[2] = "PatientAge";//ownBookmark[3] = "DiagnoseDate";//ownBookmark[4] = "Offices";//ownBookmark[5] = "ZhuYuanHao";//ownBookmark[6] = "SongZhenYiShi";//ownBookmark[7] = "SampleType";//ownBookmark[8] = "PathologyID";//PatientName = textBox_patientName.Text;//PatientSex = comboBox_patientSex.Text;//PatientAge = textBox_patientAge.Text;//DiagnoseDate = dateTimePicker1.Text;//Offices = textBox_Office.Text;//ZhuYuanHao = textBox_ZhuYuanHao.Text;//SongZhenYiShi = textBox_SongZhenYiShi.Text;//SampleType = comboBox_SampleType.Text;//PathologyID = DateTime.Now.ToString("yyyy-MM-dd");//ownDoc.Bookmarks.get_Item(ref ownBookmark[0]).Range.Text = PatientName;//ownDoc.Bookmarks.get_Item(ref ownBookmark[1]).Range.Text = PatientSex;//ownDoc.Bookmarks.get_Item(ref ownBookmark[2]).Range.Text = PatientAge;//ownDoc.Bookmarks.get_Item(ref ownBookmark[3]).Range.Text = DiagnoseDate;//ownDoc.Bookmarks.get_Item(ref ownBookmark[4]).Range.Text = Offices;//ownDoc.Bookmarks.get_Item(ref ownBookmark[5]).Range.Text = ZhuYuanHao;//ownDoc.Bookmarks.get_Item(ref ownBookmark[6]).Range.Text = SongZhenYiShi;//ownDoc.Bookmarks.get_Item(ref ownBookmark[7]).Range.Text = SampleType;//ownDoc.Bookmarks.get_Item(ref ownBookmark[8]).Range.Text = PathologyID;//SaveFileDialog sfd = new SaveFileDialog();//sfd.Filter = "Word Document(*.doc)|*.doc";    //以下两行word存储没懂 要查SaveFileDialog这个类//sfd.DefaultExt = "Word Document(*.doc)|*.doc";//if (sfd.ShowDialog() == DialogResult.OK)//{//    object filename = sfd.FileName;//    ownDoc.SaveAs(ref filename, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis, ref ownmis);//    ownDoc.Close(ref ownmis, ref ownmis, ref ownmis);//    ownword.Quit(ref ownmis, ref ownmis, ref ownmis);//    MessageBox.Show("输出诊断报告成功!", "Tip Message");//}#endregionReport report = new Report();report.CreateNewDovument(AppDomain.CurrentDomain.BaseDirectory + @"/Template.dot");  //模板路径report.InsertValue("PatientName", textBox_patientName.Text);//在书签处插入值report.InsertValue("PatientSex", comboBox_patientSex.Text);report.InsertValue("PatientAge", textBox_patientAge.Text);report.InsertValue("DiagnoseDate", dateTimePicker1.Text);report.InsertValue("Offices", textBox_Office.Text);report.InsertValue("ZhuYuanHao", textBox_ZhuYuanHao.Text);report.InsertValue("SongZhenYiShi", textBox_SongZhenYiShi.Text);report.InsertValue("SampleType", comboBox_SampleType.Text);report.InsertValue("PathologyID", DateTime.Now.ToString("yyyy-MM-dd | HH:mm:ss"));//插入病理图像string picturePath = @"C:\Users\DELL\Desktop\膀胱癌细胞识别完善\运行示例5.png";report.InsertPicture("FeatureCellImage", picturePath, 225, 150); //书签位置,图片路径,图片宽度,图片高度//保存Word文档//文档路径string Word_Path = AppDomain.CurrentDomain.BaseDirectory + @"/病理诊断报告汇总/诊断报告-" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".doc";report.SaveDocument(Word_Path); //保存文档到相应文档路径string PDF_Path = WordToPDF(Word_Path);   //Word转换为PDF输出}//将对应的Word文档保存为PDF格式输出public static string WordToPDF(string sourcePath){if (string.IsNullOrEmpty(sourcePath)){return "";}Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();Microsoft.Office.Interop.Word.Document document = null;try{application.Visible = false;document = application.Documents.Open(sourcePath);string ext = sourcePath.Substring(sourcePath.LastIndexOf('.'));string PDFPath = sourcePath.Replace(ext, ".pdf");if (File.Exists(@PDFPath)){File.Delete(@PDFPath);}document.ExportAsFixedFormat(PDFPath, WdExportFormat.wdExportFormatPDF);return PDFPath;}catch (Exception){return "";}}//一键打印功能private void pdfPrint(string filePath){//一键打印功能Process pr = new Process();pr.StartInfo.FileName = filePath;//文件全称-包括文件后缀pr.StartInfo.CreateNoWindow = true;pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;pr.StartInfo.Verb = "Print";pr.Start();}//一键打印PDF诊断报告private void btn_PrintPDF_Click(object sender, EventArgs e){pdfPrint(PDF_Path);  //调用方法一键打印即完成}}}

如遇到ExportAsFixedFormat此处报错,需额外添加Nuget依赖包:

 程序运行图示:

更多推荐

C#通过模板文件(.dot)生成Word文档(.doc)以及PDF文档(.pdf)

本文发布于:2024-02-27 15:54:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707228.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文档   模板   文件   dot   Word

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!