C++操作word:插入文字、图片、表格,设置样式字体
想要控制word文档,向word写入文字,图片,表格等并控制其格式,可以引入第三方库,#include "msword.h",网上的资料很多,在此不再赘述。下面封装好的代码,,很简单,可以直接调用:
// WordHandle.h: interface for the WordHandle class.
//
//#if !defined(AFX_WORDHANDLE_H__7F5096E5_F09B_4DA1_9FC2_28FA2D2C1573__INCLUDED_)
#define AFX_WORDHANDLE_H__7F5096E5_F09B_4DA1_9FC2_28FA2D2C1573__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000//段落对齐方式
enum wdAlignParagraphAlignment {wdAlignParagraphLeft = 0, //左对齐wdAlignParagraphCenter = 1, //居中wdAlignParagraphRight = 2, //右对齐wdAlignParagraphJustify = 3 //两端对齐
}; //单元格垂直对齐方式
enum WdCellVerticalAlignment{wdCellAlignVerticalTop = 0, //文字与单元格上框线对齐wdCellAlignVerticalCenter = 1, //文字与单元格中心对齐wdCellAlignVerticalBottom = 3 //文字与单元格底边框线对齐
};#include "msword.h"
#include <atlbase.h>
#include "comdef.h"
#include <afxdisp.h> //COlVirant class WordHandle
{
private:_Application wordapp;COleVariant vTrue, vFalse, vOptional;Documents worddocs;CComVariant tpl, Visble, DocType, NewTemplate;Selection wordsel;_Document worddoc;Tables wordtables;Table wordtable;_ParagraphFormat paragraphformat;Cell cell;Cells cells;_Font wordFt;Range range;CComVariant SaveChanges,OriginalFormat,RouteDocument;CComVariant ComVariantTrue,ComVariantFalse;InlineShapes ishaps;InlineShape ishap;public:void AddPicture(LPCTSTR picname);void AddTime(CTime time);void CreateChart();BOOL MergeCell(int cell1row,int cell1col,int cell2row,int cell2col);void CloseWordSave(LPCTSTR wordname); void CloseWord();void SetTableFormat(int nRow, int nColumn, long horizontalAlignment, long verticalAlignment);void SetTableFormat(int beginRow, int beginColumn, int endRow, int endColumn, long horizontalAlignment = wdAlignParagraphCenter, long verticalAlignment = wdCellAlignVerticalCenter);void SetTablePadding(float topPadding = 4.0, float bottomPadding = 4.0, float leftPadding = 4.0, float rightPadding = 4.0);void SetTableFont(int nRow, int nColumn, BOOL bBold, BOOL bItalic = FALSE, BOOL bUnderLine = FALSE);void SetTableFont(int nRow, int nColumn, LPCTSTR szFontName = "宋体", float fSize=9, long lFontColor=0, long lBackColor = 0);void SetTableFont(int beginRow, int beginColumn, int endRow, int endColumn, LPCTSTR szFontName = "宋体", float fSize=9, long lFontColor=0, long lBackColor = 0);void SetFont(BOOL bBold, BOOL bItalic = FALSE, BOOL bUnderLine = FALSE );void SetFont(LPCTSTR szFontName ,float fSize = 9, long lFontColor = 0, long lBackColor=0);void AddParagraph();void WriteText(LPCTSTR szText);BOOL CreateWord();void ShowWord(BOOL show);void WriteCell(int nRow, int nColumne, LPCTSTR szText);void WriteCell(int nRow, int nColumne, LPCTSTR lpszFormat, float num);BOOL CreateTable(int nRow, int nColumn);void SetParagraphFormat(int nAlignment);BOOL CreateDocumtent();BOOL CreateApp();WordHandle();virtual ~WordHandle();};#endif // !defined(AFX_WORDHANDLE_H__7F5096E5_F09B_4DA1_9FC2_28FA2D2C1573__INCLUDED_)
下面是实现文件:
// WordHandle.cpp: implementation of the WordHandle class.
//
//#include "stdafx.h"
#include "WordHandle.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//
// Construction/Destruction
//WordHandle::WordHandle(){OleInitialize(NULL); //CoInitialize(NULL);ComVariantTrue=CComVariant(true);ComVariantFalse=CComVariant(false);vTrue=COleVariant((short)TRUE);vFalse=COleVariant ((short)FALSE);tpl=CComVariant(_T(""));DocType=CComVariant(0);NewTemplate=CComVariant(false);vOptional=COleVariant((long)DISP_E_PARAMNOTFOUND,VT_ERROR);}WordHandle::~WordHandle(){wordtable.ReleaseDispatch();wordtables.ReleaseDispatch();wordsel.ReleaseDispatch();worddocs.ReleaseDispatch();worddoc.ReleaseDispatch();paragraphformat.ReleaseDispatch();wordapp.ReleaseDispatch();wordFt.ReleaseDispatch();cell.ReleaseDispatch();range.ReleaseDispatch();ishaps.ReleaseDispatch();ishap.ReleaseDispatch();CoUninitialize();
}BOOL WordHandle::CreateApp(){if (FALSE == wordapp.CreateDispatch("Word.Application")) {MessageBox(NULL,"Application创建失败!","", MB_OK|MB_ICONWARNING);return FALSE;}// m_wdApp.SetVisible(TRUE);return TRUE;}BOOL WordHandle::CreateDocumtent(){if (!wordapp.m_lpDispatch){MessageBox(NULL,"Application为空,Documents创建失败!", "错误提示",MB_OK|MB_ICONWARNING);return FALSE;}worddocs.AttachDispatch(wordapp.GetDocuments());if (!worddocs.m_lpDispatch){MessageBox(NULL,"Documents创建失败!", "错误提示",MB_OK|MB_ICONWARNING);return FALSE;}CComVariant Template(_T("")); CComVariant NewTemplate(false),DocumentType(0),Visible;worddocs.Add(&Template,&NewTemplate,&DocumentType,&Visible); worddocs = wordapp.GetActiveDocument();if (!worddocs.m_lpDispatch){MessageBox(NULL,"Document获取失败!", "",MB_OK|MB_ICONWARNING);return FALSE;}wordsel = wordapp.GetSelection();if (!wordsel.m_lpDispatch){MessageBox(NULL,"Select获取失败!", "",MB_OK|MB_ICONWARNING);return FALSE;} return TRUE;}void WordHandle::SetParagraphFormat(int nAlignment)
{if (!wordsel.m_lpDispatch){return ;}paragraphformat = wordsel.GetParagraphFormat();paragraphformat.SetAlignment(nAlignment);wordsel.SetParagraphFormat(paragraphformat);
}BOOL WordHandle::CreateTable(int nRow, int nColumn){if (!wordapp.m_lpDispatch){return FALSE;}worddoc = wordapp.GetActiveDocument();wordtables = worddoc.GetTables();VARIANT vtDefault, vtAuto;vtDefault.vt = VT_I4;vtAuto.vt = VT_I4;vtDefault.intVal = 1;vtAuto.intVal = 0;wordtables.Add(wordsel.GetRange(), nRow, nColumn, &vtDefault, &vtAuto); wordtable = wordtables.Item(wordtables.GetCount());VARIANT vtstyle;vtstyle.vt = VT_BSTR;_bstr_t bstr = "网格型";vtstyle.bstrVal = bstr;if (wordtable.GetStyle().bstrVal == vtstyle.bstrVal){wordtable.SetStyle(&vtstyle);wordtable.SetApplyStyleFirstColumn(TRUE);wordtable.SetApplyStyleHeadingRows(TRUE);wordtable.SetApplyStyleLastColumn(TRUE);wordtable.SetApplyStyleLastRow(TRUE); }return TRUE;
}void WordHandle::WriteCell(int nRow, int nColumne, LPCTSTR szText){if (wordtable!=NULL){cell = wordtable.Cell(nRow,nColumne);cell.Select();wordsel.TypeText(szText); }
}//将数字num以lpszFormat的形式写入(nRow,nColumne)中
void WordHandle::WriteCell(int nRow, int nColumne, LPCTSTR lpszFormat, float num){ if(wordtable != NULL){cell = wordtable.Cell(nRow, nColumne);cell.Select();CString str;str.Format(lpszFormat, num);wordsel.TypeText(str);}
}void WordHandle::ShowWord(BOOL show){if (!wordapp.m_lpDispatch){return ;}wordapp.SetVisible(show);
}BOOL WordHandle::CreateWord(){if (FALSE == CreateApp()){return FALSE;}return CreateDocumtent();
}//输出文字
void WordHandle::WriteText(LPCTSTR szText){if (!wordsel.m_lpDispatch){return ;}wordsel.TypeText(szText);wordtable=NULL;
}//添加新段落
void WordHandle::AddParagraph(){if (!wordsel.m_lpDispatch){return ;}wordsel.EndKey(COleVariant((short)6),COleVariant(short(0))); //定位到全文末尾wordsel.TypeParagraph();//新的段落,也就是回车换行wordtable=NULL;
}//设置字体样式、字体大小、字体颜色、背景色
void WordHandle::SetFont(LPCTSTR szFontName, float fSize, long lFontColor, long lBackColor){if (!wordsel.m_lpDispatch) {MessageBox(NULL,"Select为空,字体设置失败!","错误提示", MB_OK|MB_ICONWARNING);return;}wordsel.SetText("F");wordFt = wordsel.GetFont();wordFt.SetSize(fSize);wordFt.SetName(szFontName);wordFt.SetColor(lFontColor);wordsel.SetFont(wordFt);range = wordsel.GetRange();range.SetHighlightColorIndex(lBackColor);
}//设置粗体、斜体、下划线
void WordHandle::SetFont(BOOL bBold, BOOL bItalic, BOOL bUnderLine){if (!wordsel.m_lpDispatch){MessageBox(NULL,"Select为空,字体设置失败!", "错误提示",MB_OK|MB_ICONWARNING);return;}wordsel.SetText("F");wordFt = wordsel.GetFont();wordFt.SetBold(bBold);wordFt.SetItalic(bItalic);wordFt.SetUnderline(bUnderLine);wordsel.SetFont(wordFt);
}//设置单元格(nRow, nColumn)字体样式、字体大小、字体颜色、背景色
void WordHandle::SetTableFont(int nRow, int nColumn, LPCTSTR szFontName, float fSize, long lFontColor, long lBackColor){cell = wordtable.Cell(nRow, nColumn);cell.Select();wordFt = wordsel.GetFont();wordFt.SetName(szFontName);wordFt.SetSize(fSize);wordFt.SetColor(lFontColor);wordsel.SetFont(wordFt);range = wordsel.GetRange();range.SetHighlightColorIndex(lBackColor);
}//设置从(beginRow, beginColumn)到(endRow, endColumn)所围区域单元格的字体样式、字体大小、字体颜色、背景色
void WordHandle::SetTableFont(int beginRow, int beginColumn, int endRow, int endColumn, LPCTSTR szFontName, float fSize, long lFontColor, long lBackColor){wordtable.SetBottomPadding(10.0);int nRow, nColumn;for(nRow = beginRow; nRow <= endRow; nRow++){for(nColumn = beginColumn; nColumn <= endColumn; nColumn++){SetTableFont(nRow, nColumn, szFontName, fSize, lFontColor, lBackColor);}}
}//设置单元格(nRow, nColumn)粗体、斜体、下划线
void WordHandle::SetTableFont(int nRow, int nColumn, BOOL bBold, BOOL bItalic, BOOL bUnderLine){cell = wordtable.Cell(nRow, nColumn);cell.Select();wordFt = wordsel.GetFont();wordFt.SetBold(bBold);wordFt.SetItalic(bItalic);wordFt.SetUnderline(bUnderLine);wordsel.SetFont(wordFt);
}//设置表格单元格(nRow, nColumn)的水平、垂直对齐方式
void WordHandle::SetTableFormat(int nRow, int nColumn, long horizontalAlignment, long verticalAlignment){cell = wordtable.Cell(nRow, nColumn);cell.Select();cell.SetVerticalAlignment(verticalAlignment);paragraphformat = wordsel.GetParagraphFormat();paragraphformat.SetAlignment(horizontalAlignment);wordsel.SetParagraphFormat(paragraphformat);
}//设置表格从(beginRow, beginColumn)到(endRow, endRow)区域内水平、垂直对齐方式
void WordHandle::SetTableFormat(int beginRow, int beginColumn, int endRow, int endColumn, long horizontalAlignment, long verticalAlignment){int nRow, nColumn;for( nRow = beginRow; nRow <= endRow; nRow++){for( nColumn = beginColumn; nColumn <= endColumn; nColumn++){SetTableFormat(nRow, nColumn, horizontalAlignment, verticalAlignment);}}
}//设置表格单元格的上下左右内边距填充
void WordHandle::SetTablePadding(float topPadding, float bottomPadding, float leftPadding, float rightPadding){wordtable.SetTopPadding(topPadding);wordtable.SetBottomPadding(bottomPadding);wordtable.SetLeftPadding(leftPadding);wordtable.SetRightPadding(rightPadding);
}//合并单元格
BOOL WordHandle::MergeCell(int cell1row, int cell1col, int cell2row, int cell2col){Cell cell1=wordtable.Cell(cell1row,cell1col);Cell cell2=wordtable.Cell(cell2row,cell2col);cell1.Merge(cell2);return TRUE;
}//创建图表
void WordHandle::CreateChart(){ishaps= wordsel.GetInlineShapes();CComVariant classt;classt=CComVariant("MSGraph.Chart.8");ishap=ishaps.AddOLEObject(&classt,vOptional,vFalse,vFalse,vOptional,vOptional,vOptional,vOptional);AddParagraph();
}//添加图片
void WordHandle::AddPicture(LPCTSTR picname){ishaps= wordsel.GetInlineShapes(); ishap=ishaps.AddPicture(picname,vFalse,vTrue,vOptional); AddParagraph();
}void WordHandle::AddTime(CTime time){
}void WordHandle::CloseWord(){if (!wordapp.m_lpDispatch){return ;}SaveChanges=ComVariantFalse;wordapp.Quit(&SaveChanges,&OriginalFormat,&RouteDocument);
}void WordHandle::CloseWordSave(LPCTSTR wordname){if (!wordapp.m_lpDispatch){return ;}if (!worddoc.m_lpDispatch){return ;}worddoc.SaveAs(&CComVariant(wordname), &CComVariant((short)0),vFalse, &CComVariant(""), vTrue, &CComVariant(""),vFalse, vFalse, vFalse, vFalse, vFalse,vFalse, vFalse, vFalse, vFalse, vFalse);SaveChanges=ComVariantTrue;wordapp.Quit(&SaveChanges,&OriginalFormat,&RouteDocument);
}
如下是调用函数,比较简单哦!
void CAutotestView::OnBtn1Click()
{ WordHandle wordHandle;wordHandle.CreateWord();// 获取应用当前Debug路径char fileName[MAX_PATH];GetModuleFileName(NULL, fileName, MAX_PATH);char dir[260];char dirver[100];_splitpath(fileName, dirver, dir, NULL, NULL);CString strAppPath = dirver;strAppPath += dir;wordHandle.AddPicture(strAppPath+"\\logo.bmp"); //必须保证debug目录下有一张logo图片wordHandle.AddParagraph();wordHandle.SetParagraphFormat(wdAlignParagraphCenter);wordHandle.SetFont(_T("黑体"), 18);wordHandle.WriteText(_T("XXXXXXXXXX测试报告"));wordHandle.AddParagraph();wordHandle.AddParagraph();wordHandle.SetFont(_T("宋体"), 10);wordHandle.SetParagraphFormat(wdAlignParagraphRight);wordHandle.WriteText(_T("生成时间:"));wordHandle.WriteText(CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S")));//连接access数据库TestInfoSetCString strSQL;CAutotestApp* ptheApp = (CAutotestApp *) AfxGetApp();strSQL.Format("select * from TestInfo where TestID = %d order by TestID",ptheApp->m_testID);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)){MessageBox("打开数据库失败!","数据库错误",MB_OK);return ;}//创建表格wordHandle.CreateTable(9, 4);wordHandle.SetTableFont(1, 1, 9, 4, _T("宋体"), 12);wordHandle.SetTableFormat(1, 1, 9, 4, wdAlignParagraphCenter, wdCellAlignVerticalCenter);wordHandle.SetTablePadding();wordHandle.WriteCell(1, 1, _T("XX型号"));wordHandle.WriteCell(1, 2, m_recordset.m_CableGG);wordHandle.WriteCell(1, 3, _T("XX类型"));wordHandle.WriteCell(1, 4, m_recordset.m_AATT);wordHandle.WriteCell(2, 1, _T("测试长度"));wordHandle.WriteCell(2, 2, _T("????")); m_testlenwordHandle.WriteCell(2, 3, _T("XX增益"));wordHandle.WriteCell(2, 4, m_recordset.m_AG);wordHandle.WriteCell(3, 1, _T("纵向损耗"));wordHandle.WriteCell(3, 2, _T("????"));wordHandle.WriteCell(3, 3, _T("XX方向"));wordHandle.WriteCell(3, 4, m_recordset.m_AO);wordHandle.WriteCell(4, 1, _T("采样数量"));wordHandle.WriteCell(4, 2, "%d", m_recordset.m_CableCD/m_recordset.m_step);wordHandle.WriteCell(4, 3, _T("XX高度"));wordHandle.WriteCell(4, 4, m_recordset.m_AH);wordHandle.WriteCell(5, 1, _T("测试频率"));wordHandle.WriteCell(5, 2, "%d", m_recordset.m_frequency);wordHandle.WriteCell(5, 3, _T("XX距离"));wordHandle.WriteCell(5, 4, m_recordset.m_AD);wordHandle.WriteCell(6, 1, _T("测试日期"));wordHandle.WriteCell(6, 2, m_recordset.m_TestDate.Format("%Y-%m-%d %H:%M:%S"));wordHandle.WriteCell(6, 3, _T("测试人员"));wordHandle.WriteCell(6, 4, m_recordset.m_Tester);wordHandle.WriteCell(7, 1, _T("测试仪器"));wordHandle.WriteCell(7, 2, _T("????"));wordHandle.WriteCell(7, 3, _T("测试温度"));wordHandle.WriteCell(7, 4, "%2.1f", m_recordset.m_temperature);wordHandle.WriteCell(8, 1, _T("耦合损耗"));wordHandle.WriteCell(8, 2, _T("????"));wordHandle.WriteCell(8, 3, _T("XXX值"));wordHandle.WriteCell(8, 4, _T("????"));wordHandle.WriteCell(9, 1, _T("XXX值"));wordHandle.WriteCell(9, 2, _T("????"));wordHandle.WriteCell(9, 3, _T("XXX值"));wordHandle.WriteCell(9, 4, _T("????"));m_recordset.Close();//屏幕截图保存CString bigChart = _T("\\big.bmp");CString smallChart = _T("\\small.bmp");m_static.Save(strAppPath+bigChart);m_astatic.save(strAppPath+smallChart);wordHandle.AddParagraph();wordHandle.SetParagraphFormat(wdAlignParagraphCenter);wordHandle.AddPicture(strAppPath+bigChart);wordHandle.AddPicture(strAppPath+smallChart);wordHandle.ShowWord(TRUE); //设置可见
}
现在贴上一个比较低级的一个demo,VS2010创建,DAO连接ACCESS数据库,生成word文档:http://download.csdn.net/detail/cai843383655/9402675
下面简要说一下如何通过MSWORD.OLB生成可操作word文档的接口文件,即上述的msword.h与msword.cpp
1. vs2010创建一个项目,打开类向导
2. 右上角添加类,下拉框选择类型库中的MFC类
3. 文件来源添加类,选择文件位置:C:\Program Files (x86)\Microsoft Office\Office14
4.生成类,可以根据自己需要只选择其中几项
注:
用VS2010生成的类不在一个文件中,用vc++6.0可把所有类集中在同一个文件中(头文件与目标文件)。上述的msword.h与msword.cpp是在VC++6.0中导入生成的,其它版本没有测试过。
另外,用上述同样方法可以操作excel文件,只不过导入的excel.exe。其它office文件类似,下面是别人的一些总结,搬运过来。
Office 版本和类型 |
类型库文件 |
Office 版本和类型 |
类型库文件 |
Access 97 | Msacc8.olb | PowerPoint 2000 | Msppt9.olb |
Jet Database | 3.5 DAO350.dll | Word 2000 | Msword9.olb |
Binder 97 | Msbdr8.olb | Access 2002 | Msacc.olb |
Excel 97 | Excel8.olb | Excel 2002 | Excel.exe |
Graph 97 | Graph8.olb | Graph 2002 | Graph.exe |
Office 97 | Mso97.dll | Office 2002 | MSO.dll |
Outlook 97 | Msoutl97.olb | Outlook 2002 | MSOutl.olb |
PowerPoint 97 | Msppt8.olb | PowerPoint 2002 | MSPpt.olb |
Word 97 | Msword8.olb | Word 2002 | MSWord.olb |
Access 2000 | Msacc9.olb | Office Access 2003 | Msacc.olb |
Jet Database 3.51 | DAO360.dll | Office Excel 2003 | Excel.exe |
Binder 2000 | Msbdr9.olb | Graph 2003 | Graph.exe |
Excel 2000 | Excel9.olb | Office 2003 | MSO.dll |
Graph 2000 | Graph9.olb | Office Outlook 2003 | MSOutl.olb |
Office 2000 | Mso9.dll | Office PowerPoint 2003 | MSPpt.olb |
Outlook 2000 | Msoutl9.olb | Office Word 2003 | MSWord.olb |
附地址:http://blog.csdn.net/wowolook/article/details/8509664
C++操作word:插入文字、图片、表格,设置样式字体相关推荐
- c#调用Aspose.Word组件操作word 插入文字/图片/表格 书签替换套打
由于NPOI暂时没找到书签内容替换功能,所以换用Apose.Word组件. using System; using System.Collections.Generic; using System.C ...
- python win32com操作word插入指定表格图片
python win32com操作word插入指定表格图片 在网上找了许久,最终自己摸索找到办法,直接上代码, import win32com.client as win32 from win32co ...
- 解决 Java poi 3.8 等版本 操作 word 插入 图片 不成功的问题
解决 Java poi 3.8等版本操作word插入图片不成功的问题 问题: 最近有一个需求是将Excel中的数据转换到word中,其中包括了文字和图片, 在使用 poi 3.8 向word中写入图片 ...
- 计算机中文字转换为表格怎么弄,Word中“文字”与“表格”相互转换-word技巧-电脑技巧收藏家...
Word中"文字"与"表格"相互转换 在Word 2000及Word 2002中,如果要把"文字"与"表格"互相方便地转 ...
- POI Word 模板 文字 图片 替换
POI Word 模板 文字 图片 替换 博客分类: java poi POIjavaWOrd 实验环境:POI3.7+Word2007 Word模板: 替换后效果: 代码: 1.入口文件 Java ...
- html 表格自动编号,Word中如何给表格设置自动编号
我们在使用Word中可能需要给表格设置自动编号,让工作效率变得更快捷一些,那么如何给表格设置自动编号呢,接下来由学习啦小编为大家推荐Word使用技巧,希望对你有所帮助! 关于Word: Word软件提 ...
- ***大论文中插入Visio不失真方法:word插入viso图片方法
***大论文中插入Visio不失真方法:word插入viso图片方法 1.可以直接导出emf 2.如果利用emf导致字符间距过大,可以选择下面方式 1.可以直接导出emf 导出emf方法: 打开vis ...
- Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案
Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案 参考文章: (1)Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案 (2)ht ...
- 解决word插入的图片不能正常显示
解决word插入的图片不能正常显示 问题显示 解决方法 结果 问题显示 问题如下图:图片不能正常显示 解决方法 解决:在本段右键-段落-行距-单倍行距-确定,即可 因为行距设为固定值了,所以不能正常显 ...
- AngularJS之表格设置样式
1.问题背景 AngularJS表格table,利用样式设置表格间隔色 2.实现源码 <!DOCTYPE html> <html><head><meta ch ...
最新文章
- 个人品牌的思考--《赢在中国》(2008-04-01)
- 七、Linux串口编程
- AD,proteus操作
- spring事务管理一:关于事务管理的接口
- Spring+Quartz实现定时执行任务的配置
- Python学习练习:批量移动文件
- php适配模式实例,php适配器模式简单应用示例
- C语言 输出重复序列的序号,如何在FASTA序列中找到反向重复模式?
- 解决debug JDK source无法查看局部变量的问题
- rocketmq原理_消息中间件漫谈:RocketMQ延时消息应用及原理剖析
- [LeetCode] 83. Remove Duplicates from Sorted List
- Python爬取图片时,urllib提示没有属性urlretrieve的问题
- 【Python办公自动化】根据excel中数据批量生成word文档(适用劳动合同、质检报告、通知书等应用场景)
- 04 - SSH攻击Linux服务器(简单)
- 如何入门Python之Python基础教程详解
- avr 74hc595驱动数码管动态显示c语言例程,一种电梯钢丝绳张力计控制系统软件的设计...
- SSL证书中的128位加密和256位加密有何区别?
- linux内核源码分析之slab(四)
- R-squared居然是负数
- Partial RenderPartial Action RenderAction 区别和用法
热门文章
- web项目开发 之 前端规范 --- JSON数据传输规范
- 微信小号全面开放!详细注册流程
- python的递归为什么难理解_为什么Python有最大的递归深度?
- 【C语言】C语言数据类型
- java jsonfield_FastJson 使用@JSONField注解和@JSONCreator指定构造方法
- ant-modal的弹窗拉伸
- 手机网络应用客户端软件开发实践简介(摘自www.j2medev.com)
- 乐迪AT9S开机无反应、拆解过程
- Android MVP(三)内存泄漏分析与动态代理
- keil怎么将c语言烧写软件下载,Keil-MDK编译完成后自动烧写下载