C#中把DataTable中数据导出Excel编程实例

决定写一片这样的文章,第一给自己也是一种巩固,第二给需要的人也是一种帮助。
(1)首先:添加
【菜科解读】
目前有个项目,客户需求是要把数据倒成Excel,找了点资料整理了一番。
决定写一片这样的文章,第一给自己也是一种巩固,第二给需要的人也是一种帮助。
(1)首先:添加一个为程序添加一个引用
(2)在程序中using一下
using Excel = Microsoft.Office.Interop.Excel;using System.Reflection;(3)给你的程序中添加一个模板Excle(一个空的Excle文件就行)
这里就起一个名字:temp.xls
(4)按照三层架构的思想,以下有2个方法写在中间层。
第一个方法SCexcle()有2个参数,①把你需要导入 Excle的数据集 定义到一个DataTable中,②指向你程序里面前面定义的 temp.xls 模板excel的路径
1 Excel.Application app;2 Excel._Workbook wbook;3 Excel._Worksheet oSheet;4 5 public string SCexcel(DataTable dt, string pathLong)6 {7 string wordPath = pathDownLoad + “temp.xls”; //定义模板的路径8 //打开excel文档9 app = new Excel.Application();//添加一个 Excle应用对象10 11 //打开工作簿,可见很多参数,第一个就是我们模板的路径。
12 wbook = app.Workbooks.Open(wordPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);13 14 15 oSheet = (Excel._Worksheet)wbook.Worksheets[1];//创建一张sheet表16 17 //定义文件保存路径18 string filename1 = "report" + System.DateTime.Now.Year + System.DateTime.Now.Month + savechinese + ".xls";//因为保存的不平凡,所以之精确到年和月 。
否则就保存到毫秒19 string filename2 = pathLong + "UpLoadFiles\\" + filename1;//保存在服务器的路径20 21 addExecl(filename2.ToString(), dt);//内部的一个方法,把服务器路径与之前的数据放入addExcle()中,目的是在把数据放入Excel中22 23 //打开后就要关闭。
O(∩_∩)O~24 25 app.Workbooks.Close();26 //同样不要忘记结束进程27 System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet);28 System.Runtime.InteropServices.Marshal.ReleaseComObject(app);29 30 GC.Collect();//强制对所有代进行即时垃圾回收31 32 }
第二个方法addExecl();我们来看看他是如何处理数据的,并且使用你自己想要的格式来定义Excel
1 private void addExecl(string xlsPath, DataTable dt)2 {3 4 5 Excel.Range oRng;6 Excel.Range range;7 8 9 //标题10 int excel_cur = 1;11 oSheet.Cells[excel_cur, 1] = "大标题";12 excel_cur++;13 14 //字段名 15 oSheet.Cells[excel_cur, 1] = "序号";16 oSheet.Cells[excel_cur, 2] = "字段1";17 oSheet.Cells[excel_cur, 3] = "字段2";18 oSheet.Cells[excel_cur, 4] = "字段3";19 oSheet.Cells[excel_cur, 5] = "字段4";20 oSheet.Cells[excel_cur, 6] = "字段5";21 oSheet.Cells[excel_cur, 7] = "字段6";22 oSheet.Cells[excel_cur, 8] = "字段7";23 oSheet.Cells[excel_cur, 9] = "字段8";24 oSheet.Cells[excel_cur, 10] = "字段9";25 excel_cur++;26 27 //行数据绑定28 if (dt.Rows.Count > 0)29 {30 for (int i = 0; i 效果具体代码添加新工作簿eole.Workbooks.add激活指定的工作簿eole.WorkSheets("工作簿名").Activate设置第3个工作表为激活工作表eole.Worksheets("sheet1").Activate打开指定工作簿 eole.Workbooks.add("E:/E_temp/ABC.xls")更改Excel标题栏eole.Caption="Microsoft Excel"给单元格赋值eole.cells(行,列).value=XM(XM为数据库字段名) eole.cells(1,4).value='ASDFASDFASDFASDFADSF'设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=5设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035 //设定行高为1厘米,1磅=0.035厘米在第7行之前插入分页符eole.Worksheets("Sheet1").Rows(7).PageBreak=1在第7列之前删除分页符eole.ActiveSheet.Columns(7).PageBreak=0指定边框线宽度(Borders参数如下)eole.ActiveSheet.Range("b3:d3").Borders(2).Weight=3设置四个边框线条的类型eole.ActiveSheet.Range("b3:d3").Borders(1).Line > (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)设置页眉eole.ActiveSheet.PageSetup.CenterHeader="报表1"设置页脚eole.ActiveSheet.PageSetup.CenterFooter="第&P页"设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.035设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.035设置底边距为4厘米 eole.ActiveSheet.PageSetup.BottomMargin=4/0.035设置左边距为2厘米eole.ActiveSheet.PageSetup.LeftMargin=2/0.035设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.035设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t.设置页面垂直居中 eole.ActiveSheet.PageSetup.CenterVertically=.t.设置页面纸张大小(1-窄行8?5?11 39-宽行14?11) eole.ActiveSheet.PageSetup.PaperSize=1可为下列 XlPaperSize 常量之一(某些打印机可能不支持所有的这些纸张大小);常量 数值 意义;xlPaperLetter 1 Letter (8-1/2 in. x 11 in.)xlPaperA3 8 A3 (297 mm x 420 mm)xlPaperA4 9 A4 (210 mm x 297 mm)xlPaperA4Small 10 A4 Small (210 mm x 297 mm)xlPaperA5 11 A5 (148 mm x 210 mm)xlPaperB4 12 B4 (250 mm x 354 mm)xlPaperB5 13 B5 (182 mm x 257 mm)xlPaperFanfoldUS 39 U.S. Standard Fanfold (14-7/8 in. x 11 in.)xlPaperUser 用户自定义打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.拷贝整个工作簿eole.ActiveSheet.UsedRange.Copy拷贝指定区域eole.ActiveSheet.Range("A1:E2").Copy粘贴eole.Worksheets("sheet2").Activateeole.ActiveSheet.Range("F1").PasteSpecial在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert设置字体eole.ActiveSheet.Cells(2,1).Font.Name="黑体"设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=25设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.合并单元格eole.ActiveSheet.Range("A1:B4").merge撤销合并单元格,上述操作的逆操作eole.ActiveSheet.Range("A1:B4").unmerge在单元格中设置公式(一般可以用来实现计算汇总、求平均等很多功能)eole.cells(1,4).value = "=公式"** 可以使用所有VBA内部函数,如sum()等。
注意:不能使用VFP的函数啊!清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents打印预览工作表eole.ActiveSheet.PrintPreview打印输出工作表eole.ActiveSheet.PrintOut工作表另为eole.ActiveWorkbook.SaveAs("c:/temp/22.xls")放弃存盘eole.ActiveWorkbook.saved=.t.关闭工作簿eole.Workbooks.close退出Exceleole.quit
以上就是本人对Excel一些微不足道的见解。
写的不周到的地方 也请给位多多担待。
中把,DataTable,中,数据,导出,Excel,编程,上海社保缴费中途有中断,可以补缴吗?(2025/4/22)
但具体补交条件因地区、险种和断交时间长短而有所不同。
社保和医保断交后是可以补交的,但具体补交的法规和条件因地区、险种和断交时间长短而有所不同。
以下是详细说明:(1)社保补交新规补交条件:社保补交分为两种情况:断交当年及时补交:一般可以补交两年内的社保保费,且不需要提交额外资料。
退休前一次性补交:如果养老保险和医疗保险的缴费年限不足,可以在退休前一次性补交。
补交方式:通过新单位补交:找到新工作后,单位可以协助补交断交期间的社保。
个人补交:如果是本地户口,可以自行到社保局办理补交;外地户口则需通过第三方代理机构办理。
滞纳金:如果用人单位未按时缴纳社保,需按日加收万分之五的滞纳金。
(2)医保补交新规断交时间较短(3个月内):居民医保:部分地区允许在集中缴费期后补交,补交后次月即可享受医保待遇。
职工医保:许多地区允许补交,补交后医保待遇不受影响。
例如,北京市断交不超过3个月可补交。
断交时间较长(超过3个月):居民医保:通常只能等待下一年度集中缴费期重新参保,无法补交。
职工医保:部分地区不允许补交,需重新参保并等待一定时间才能享受待遇;部分地区允许补交,但待遇可能受限。
(3)特殊情况补交单位原因导致断交:用人单位需为职工补交,并承担滞纳金。
灵活就业人员断交:补交与职工医保类似,断交时间较短可自行补交,断交时间较长则可能无法补交或待遇受限。
(4)新规支持异地补交根据2025年公布的社保新规,社保断缴最高可补15年,且支持异地办理,为因工作变动或经济困难导致断缴的人员提供了便利。
(5)补交申请部门社保补交:向当地社会保险经办机构申请。
医保补交:向当地医保经办机构或税务部门(部分地区)申请。
总结:断交后补交是可行的,但需根据具体情况选择合适的方式和时机,并注意补交的限制和滞纳金问题。
上海个人是否能交社保呢?个人是可以自己交社保的。
社保可以按灵活就业人员参保。
但个人以灵活就业人员交社保是有户籍限制的。
1、未到达要求的退休年龄的自谋职业者、自由职业者、未在用人单位参保的非全日制从业人员以及本区户籍的失业人员,可以以灵活就业方式办理社会保险参保手续,缴纳企业养老保险和职工基本医疗保险;本区户籍参保职工、到达法定退休年龄累计缴费年限不足15年、由本人申请经社保部门批准延长缴费的,也可办理灵活就业续保。
2、灵活就业人员缴费比例各地稍有不同,具体情况可以咨询当地社保经办部门;灵活就业人员缴纳医疗保险后视同缴纳生育保险,可享受生育保险待遇。
中国第一个外国人太监竟然跟皇后有着不可告人的谜团
一些贫苦出身的百姓为了生存,不惜割掉生殖器,进入皇宫中服侍皇上以及皇亲。
身为太监,不仅要饱尝生理及心理的双重摧残。
而且还要承担社会舆论的巨大压力,他们是封建社会最底层的可怜人群。
但在历史上,也出现过多位位高权重的太监,像、、、李莲英等人,都受到了皇上的宠爱而权贵无比。
但是你知道中国历史上还曾有过洋人宦官、外国籍的太监吗? 据史料记载,在中国时期,中国就曾有过一位外国籍的太监,而且他也是中国历史上第一位外国籍的太监。
名叫朴不花,他是高丽人,生于文宗时期。
朴不花在中国的皇宫内与奇洛皇后关系十分亲密,所以官职一升再升。
连朝中大臣们都要巴结他,看他的眼色行事,真可谓是权倾朝野了,也光耀了“太监”的门庭。
在朴不花7岁的时候,一个偶然的机会他被净了身,于是便被送到元朝的皇城内做了一名专门斟茶倒水、扫地擦桌子的小杂务。
与他同时进宫的还有一位名叫奇洛的小姑娘,她是朴不花儿时的玩伴,奇洛在皇宫里只是做一些针线活之类的工作。
闲着没事的时候,两个孩子常在一块聊聊天,诉说一下思乡之苦。
在宫中苦熬的日子里,两人彼此相互关怀、相互照应,生活得还算愉快。
一转眼二人都已长大,奇洛出落得越发娇嫩可爱。
的儿子妥欢帖木尔在游玩时发现了美丽的奇洛,并把她收进了自己的府邸。
奇洛不仅人长得美,而且非常乖巧温柔,深得妥欢帖木尔的宠爱。
不久,妥欢帖木尔登基,是为元顺帝,元顺帝封奇洛为二皇后。
虽然成了母仪天下的皇后,荣华富贵自然是享用不尽,但她也没有忘记自己的同乡好友朴不花。
她把朴不花调到自己的兴圣宫,并迁升他为荣禄大夫,加资正院使。
资政院是元朝专门管理全国财政的部门,是个可以捞银子的肥差事。
既然奇洛二皇后为朴不花提供了如此好的机会,朴不花当然不会错过,自然捞得了很多好处。
朴不花逐渐地积攒起了万贯家财,并且分给了奇洛二皇后很多。
朴不花的贪污行为一向都十分小心、巧妙,所以朝廷并未有所察觉。
再加上朴不花非常懂得为人处世之道,经常把一些贪占的财物送给朝中的权贵及皇亲国戚们,使得宫内宫外的人都说朴不花人好心好,赞扬声不绝于耳,比比皆是。
但是渐渐地,财富已经不能满足朴不花的欲望了,他开始觊觎朝中的权势了,要开始向政界发起进攻。
巧的是元顺帝也十分宠信朴不花,经常会派他去外面做一些私访或是赈灾之类的工作,这也为他进军政界打开了便捷之门。
奇洛二皇后生的儿子被立为皇太子后,朴不花又把全部的心思都扑在了太子身上,太子的全由朴不花一人亲自打理。
正当元顺帝厌倦了政务、只喜好声色时,皇上不但把国之大权交给了太子,而且还任用了朴不花推荐的搠思监为宰相。
这时候的朴不花早已经是权倾朝野的人物了,不管是官吏的升免,还是国策的制定,全都由朴不花一人来决策了。
朴不花把朝中那些与自己不和的官员一一贬职查办,不断地。
由于元顺帝放任朴不花、搠思监等人在朝中的胡作非为,朝野内外开始动荡不安,国内的军阀势力也开始趁机起兵造反。
军阀们为了扩大自己的势力,也纷纷参与了宫廷内的权力争斗,一时之间,天下大乱。
此时的太子也早有登基称帝之愿,见国家局势动荡不安,便想趁机逼迫自己的父皇退位。
此时的朴不花、搠思监、奇洛二皇后也完全赞同太子的做法,几人便开始了策划颠覆造反的活动。
就在他们依计划在排除朝中反对派的官员时,元顺帝发现了他们的阴谋,而且对几人在朝中无法无天行径的弹劾之声也是不绝于耳。
所以元顺帝下旨把朴不花、搠思监打入了大牢。
平日与他们有仇的孛罗帖木儿趁太子出京之际,斩杀了这两个乱国的臣子。
此时军阀混战的局面还没有彻底解决,南方的早已经开始向元大都进攻,直接威胁着大元帝国的生存。
元顺帝见国家即将倾覆,不由得,万分懊悔地对太子道:“你们母子误了我的天下,我大元的江山毁在了你们母子的手中!”。
元顺帝虽然嘴上是这么说的,但他心里也明白,这一切的一切都是自己对朴不花等人的放任造成的。
朴不花死后不久,元朝就灭亡了。
随机文章地质奇观重庆武隆天坑地缝,世界最大的天坑群(80个)月球的背面是什么,二战飞机和外星人基地现身月球(谣言)北极冰川什么时候消失,冰川什么时候融化(全球变暖冰川消退)揭秘太空看地球是什么样子?从太空看地球的十大奇景(别具特色)柯伊伯带和小行星带的区别,柯伊伯带天体比小行星带多(质量小)