1.该程序是一个win32控制台程序

2.开发工具是VS2010,office是2013版的

3.需要添加以下引用

4 在C盘保存.dot模板,样式如下

6.excel中的数据格式,最好都设置为常规。

具体的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Drawing;
using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop.Excel;namespace ReadANDWrite
{class Program{//读取EXCEL数据public System.Data.DataTable LoadDataFromExcel(string Path){string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + Path + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();string strExcel = "";OleDbDataAdapter myCommand = null;System.Data.DataTable dt = null;strExcel = "select * from [sheet1$]";myCommand = new OleDbDataAdapter(strExcel, strConn);dt = new System.Data.DataTable();myCommand.Fill(dt);return dt;}// 写入word 模板public void WriteDataTOword(System.Data.DataTable dt, System.Data.DataTable dt1, System.Data.DataTable dt2, System.Data.DataTable dt3,string [] sstr){object oMissing = System.Reflection.Missing.Value;//创建一个Word应用程序实例Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();//设置为不可见oWord.Visible = false;//模板文件地址,这里假设在X盘根目录object oTemplate = "C://template11.dot";//以模板为基础生成文档Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);//声明书签数组object[] oBookMark = new object[20];//赋值书签名oBookMark[0] = "name";oBookMark[1] = "sex";oBookMark[2] = "people";oBookMark[3] = "jiguan";oBookMark[4] = "birth";oBookMark[5] = "zzmm";oBookMark[6] = "cjgzsj";oBookMark[7] = "whcd";oBookMark[8] = "byyx";oBookMark[9] = "major";//
            oBookMark[10] = "graduate";oBookMark[11] = "scgwpyqzw";oBookMark[12] = "prsj";oBookMark[13] = "kh1";oBookMark[14] = "kh2";oBookMark[15] = "kh3";oBookMark[16] = "xpgw";oBookMark[17] = "xpgwdj";oBookMark[18] = "npgw";oBookMark[19] = "npgwdj";////赋值任意数据到书签的位置//for (int i = 0; i < 20;++i )//{//    oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = dt.Rows[i][0].ToString();//}oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = sstr[1];oDoc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text = sstr[2];oDoc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text = sstr[3];oDoc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text = sstr[4];oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = sstr[5];oDoc.Bookmarks.get_Item(ref oBookMark[5]).Range.Text = sstr[6];oDoc.Bookmarks.get_Item(ref oBookMark[6]).Range.Text = sstr[7];oDoc.Bookmarks.get_Item(ref oBookMark[7]).Range.Text = sstr[8];oDoc.Bookmarks.get_Item(ref oBookMark[8]).Range.Text = sstr[9];oDoc.Bookmarks.get_Item(ref oBookMark[9]).Range.Text = sstr[10];oDoc.Bookmarks.get_Item(ref oBookMark[10]).Range.Text = sstr[11];oDoc.Bookmarks.get_Item(ref oBookMark[11]).Range.Text = sstr[12];oDoc.Bookmarks.get_Item(ref oBookMark[12]).Range.Text = sstr[13];string[] str1 = new string[3];string ss1,ss2,ss3;////2014年for (int i = 0; i < 193; i++){ss1 = dt1.Rows[i][1].ToString();if (sstr[1] == dt1.Rows[i][1].ToString()) //若名字相同
                {str1[0] = dt1.Rows[i][6].ToString();break;}}//2015年for (int i = 0; i < 182; i++){ss2 = dt2.Rows[i][1].ToString();if (sstr[1] == dt2.Rows[i][1].ToString()) //若名字相同
                {str1[1] = dt2.Rows[i][6].ToString();break;}}//2016年for (int i = 0; i < 189; i++){ss3 = dt3.Rows[i][1].ToString();if (sstr[1] == dt3.Rows[i][1].ToString()) //若名字相同
                {str1[2] = dt3.Rows[i][6].ToString();break;}}oDoc.Bookmarks.get_Item(ref oBookMark[13]).Range.Text = str1[0];oDoc.Bookmarks.get_Item(ref oBookMark[14]).Range.Text = str1[1];oDoc.Bookmarks.get_Item(ref oBookMark[15]).Range.Text = str1[2];for (int i = 0; i < 3;i++ ) //清空考核
            {str1[i] = "";}////oDoc.Bookmarks.get_Item(ref oBookMark[16]).Range.Text = dt.Rows[0][0].ToString();//oDoc.Bookmarks.get_Item(ref oBookMark[17]).Range.Text = dt.Rows[0][0].ToString();//oDoc.Bookmarks.get_Item(ref oBookMark[18]).Range.Text = dt.Rows[0][0].ToString();//oDoc.Bookmarks.get_Item(ref oBookMark[19]).Range.Text = dt.Rows[0][0].ToString();//保存生成的Wordobject filename ="C:\\Users\\LV\\Desktop\\temp\\"+ sstr[1]+"-xx单位";oDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,ref oMissing, ref oMissing);oDoc.Close(ref oMissing, ref oMissing, ref oMissing);//关闭wordoWord.Quit(ref oMissing, ref oMissing, ref oMissing);}static void Main(string[] args){Program p = new Program();System.Data.DataTable dt = p.LoadDataFromExcel("C:\\Users\\administrator\\Desktop\\花名册111.xls");System.Data.DataTable dt1 = p.LoadDataFromExcel("C:\\Users\\administrator\\Desktop\\14考核表.xls"); System.Data.DataTable dt2 = p.LoadDataFromExcel("C:\\Users\\administrator\\Desktop\\15考核表.xls");System.Data.DataTable dt3 = p.LoadDataFromExcel("C:\\Users\\administrator\\Desktop\\16考核表.xls");string[] sstr = new string[21]; //定义一个存储输出数据的数组string[] substr=new string[3];System.DateTime currenttime1 = new System.DateTime();currenttime1 = System.DateTime.Now;for (int i = 0; i < 190; i++){            sstr[1] = dt.Rows[i][1].ToString();//姓名sstr[2] = dt.Rows[i][2].ToString();//性别sstr[3] = dt.Rows[i][3].ToString();//民族sstr[4] = dt.Rows[i][5].ToString();//籍贯sstr[5] = dt.Rows[i][25].ToString();//出生年月sstr[6] = dt.Rows[i][6].ToString();//政治面貌sstr[7] = dt.Rows[i][21].ToString();//参加工作时间sstr[8] = dt.Rows[i][8].ToString();// 文化程度//
                sstr[0]=dt.Rows[i][23].ToString();// 毕业院校substr = sstr[0].Split(',');sstr[9] = substr[0];// 毕业院校sstr[10] = substr[1];// 专业sstr[11] = dt.Rows[i][24].ToString();//毕业时间//
                sstr[12] = dt.Rows[i][13].ToString();// 首次聘任前职务sstr[13] = dt.Rows[i][14].ToString();// 聘任时间//Console.WriteLine(dt1.Rows[i][0].ToString() + dt1.Rows[i][1].ToString() + dt1.Rows[i][2].ToString() + dt1.Rows[i][3].ToString() + dt1.Rows[i][4].ToString() + dt1.Rows[i][5].ToString());//Console.WriteLine("\n");
                p.WriteDataTOword(dt,dt1,dt2,dt3,sstr);Console.WriteLine("{0}{1}  输出完毕", dt.Rows[i][0].ToString(),dt.Rows[i][1].ToString());Console.WriteLine("\n");}System.DateTime currenttime2 = new System.DateTime();currenttime2 = System.DateTime.Now;Console.WriteLine("\n");Console.WriteLine("全部输出完毕");Console.WriteLine("开始时间{0}---结束时间{1}", currenttime1,currenttime2);Console.ReadLine();}}
}

7运行结果

转载于:https://www.cnblogs.com/taxiao-seizetime/p/6709681.html

C# 读取Excel文件,并写入word模板文档相关推荐

  1. python3读写excel文件_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  2. python循环读取excel存入列表_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  3. java代码里的JSON格式怎么写好看_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrdimport jsonimport operatordef read_xlsx(filename): # 打开excel文件 data1 = ...

  4. python读excel并写入_python3 循环读取excel文件并写入json操作

    文件内容: excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data ...

  5. 手机接收到的Excel文件如何转换成PDF文档

    现在大家对手机的需求越来越大,手机接收到的Excel文件怎么转换成PDF文档呢?其实手机将Excel表格转换成PDF文件只需要借助转换工具就可以完成的.今天就给大家分享一个转换工具将Excel转换成P ...

  6. MFC读取Excel文件+数据处理+写入Excel

    在日常编程的过程中,我们经常会遇到需要读写文件的操作,当然,最好的选择是数据库来进行读写,但是由于数据库使用环境的要求(比如某些数据库要求必须安装数据库软件后才能使用),同时,要进行数据库操作需要对S ...

  7. python读excel并写入_Python读取Excel文件并写入数据库

    好方法最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而 ...

  8. Python将Excel文件内容写入Word文件

    在日常办公中我们经常需要将Excel文件中的数据写入Word中,如果是手动一个一个进行复制粘贴,那将会非常的耗时且繁琐! 遇到这种问题我们首先想到就是利用b编程解决,今天我分享一个excel转word ...

  9. python读excel并写入_python 读取excel文件并写入json

    excel内容: 代码: import xlrd import json import operator def read_xlsx(filename): # 打开excel文件 data1 = xl ...

最新文章

  1. BZOJ1563:[NOI2009]诗人小G(决策单调性DP)
  2. springmvc 的 @PathVariable
  3. windows 搭建python 虚拟环境 写程序_Windows下搭建Python虚拟环境
  4. android cliptopadding java代码_android:clipToPadding属性的分析——以ListView的别样padding为例...
  5. Windows2003ServerEnterprise+Oracle11g+VMWorkstation7.1:在虚拟机下Windows系统
  6. AsyncTask的使用半解--!
  7. IBM将收购Red Hat:面向Java的初衷
  8. linux bjobs
  9. Redis学习笔记——SpringDataRedis的使用
  10. 996工作的人,下班后还有时间锻炼身体和学习吗?还有娱乐生活吗?
  11. 曲线拟合最小二乘法对数c语言实现,数值计算_第6章曲线拟合的最小二乘法
  12. SQL Server详细教程
  13. 【微信小程序】使图片占满整个屏幕的解决方案
  14. redmon:Redis监控管理Web工具
  15. 免费多平台思维导图软件
  16. 页面插件集成:博客详情页
  17. 超详细版-计算网络地址、子网、广播地址、主机数
  18. MacBook Pro 2018电池鼓包、键盘问题免费换新
  19. shell 批量 ping 多个IP地址
  20. 开关二极管的作用是什么

热门文章

  1. Linux系统集群架构线上项目配置实战(一)
  2. [翻译]Keeping your JavaScript out of the global scope
  3. jQuery 对AMD的支持(Require.js中如何使用jQuery)
  4. get_locked_objects_rpt.sql
  5. 兼容性好的overflow CSS清除浮动一例
  6. Cocos2d-x V3.2+Cocos Studio1.6 实现一个简单的uibutton点击功能
  7. sql server 2005 sa登录失败解决方法
  8. ORA-01506: missing or illegal database name
  9. measure,layout,draw的相关方法
  10. java笔记javaweb部分