没安装Excel导出EXCEl表格

合集下载

excel的几大缺点及其解决方案-

excel的几大缺点及其解决方案-

excel的几大缺点及其解决方案Excel一直是非常流行的个人计算机数据处理工具,其身影都无处不在,它可以处理多种多样的数据,操作非常简单,支持丰富的函数、统计图表,在工作中更是非常得力的生产力工具。

然而随着时代不断的演进,现如今由于大家对于协同办公的要求越来越高,Excel 的不足也逐渐暴露出来,包括数据共享、数据质量、权限控制、流程管理、数据质量等等各种问题一直困扰着人们。

现在这些问题都可以使用魔方网表轻松解决,甚至可以在浏览器上体验Excel的丰富功能。

数据共享问题Excel作为一种基于文件的数据处理工具,在数据共享、协同办公方面存在着天生的缺陷,大家在使用Excel时通常只能通过U盘、邮件,或者通过QQ、微信之类的IM工具,将文档传来传去,非常不方便,很难满足工作需要。

魔方网表可以将Excel快速变成在线网页数据库系统,不用安装任何客户端通过浏览器就可以轻松访问,不论是PC、Mac、平板、手机各种设备都可以轻松访问,钉钉、微信、企业微信也可以做到方便集成。

使用魔方网表,需要协同办公的每个用户都可以在充分授权的情况下很方便的操作同一份数据,操作的结果可以通过浏览器实时直观呈现,每个人都可以同时操作访问数据。

除了登陆魔方操作数据之外,魔方还可以将支持丰富Excel功能的模板分享出去,变成一个可以在任何地方都可以使用的链接,并且完全不需要登录魔方的系统,就可以实现数据填报,填好的数据可以实时回传到魔方的数字系统中,大家可以实时查看最新数据,或者报表也可以简单分享成一个链接,发给其他用户查看。

图Excel模板支持Excel表格大部分公式样式和功能数据质量问题Excel的数据质量常常很成问题。

在使用Excel协同办公的时候,分发Excel表格让大家去填,大家可能会乱改模板,比如把一些你不想让他合并的单元格给你合并了,或者做一些让你意外的各种修改,因为这不是一个基于数据库的方式,不能保证他是符合范式的,大家填数据的时候常常只是复制粘贴,有时候多填一个字少一个字,最后统计的时候就乱了。

DxDbGrid与DbGridEh表格使用及导出Excel

DxDbGrid与DbGridEh表格使用及导出Excel

DxDbGrid与DbGridEh表格使用及导出Excel分类:Delphi 2011-05-16 09:47 110人阅读评论(0) 收藏举报前言:二者都是非常不错的第三方表格控件,都可实现多表头的表格及分组汇总功能;在导出 Excel 方面,个人觉得 DxDbGrid 做的比DbGridEh 出色,几乎是 Grid 原样导出, DbGridEh 导出表格模式的单元格与 Grid 显示有所出入。

一、所用版本及安装:1 、版本: DevExQuantumGrid v3.22 Pro for D7 、 EhLib 5.2.842 、安装: DevExQuantumGrid 直接 Setup.exe 就 OK ; EhLib 在Delphi7 的安装稍微啰嗦点,具体步骤参考 readme.txt 或如下步骤:(1). 将 EhLib 5.2.84 解压缩到目标目录。

(2). 打开 Delphi 7 ,将 EhLib 的 /Delphi7 子目录加到 Delphi 的 Library path 。

( 菜单操作路径为:Tools|Environment Options...|Library|Library path)(3). 将 EhLib 目标安装目录中的 common 和 DataService子目录的文件移动到 EhLib 的 /Delphi7 子目录中。

(4). 在 Delphi 7 中打开 EhLib70.dpk ,编译,但不要安装。

(5). 在 Delphi 7 中打开 DclEhLib70.dpk ,编译并安装。

(6). 组件面板中出现一个 EhLib 的组件页。

(7). 打开附带的 DEMOS ,编译并运行,测试安装成功。

二、使用 DxDbGrid1 、窗体拖入 dxDBGrid1 、 ADOConnection1 、 ADOQuery1 、DataSource1 、 Button1 、 SaveDialog1 ,然后完成数据的链接及相关控件关联,如何操作,你应该懂的;接下来完成如下图所示的一个表格:2 、双击 dxDBGrid1 ,在 Bands 栏增加 TdxTreeListBand 并填写Caption ,注意要将 dxDBGrid1 的 ShowBands 属性设置为 True 才能显示 Bands 栏;同样双击 dxDBGrid1 ,在 Columns 栏,添加多个dxGridColumn (根据需要选择不同的类型)并使其与数据库字段形成关联,涉及如下几个属性, BandIndex 选择对应的 Band 从而形成二级表头, Caption 、 FieldName 、 HeaderAlignment 、 width 等,如此完成了基本的表格设计,如果喜欢表头平滑更改 LookAndFeel 属性为 lfFlat 即可。

excel表格2020精简版 绿色版

excel表格2020精简版 绿色版

一、简介Excel是由微软公司推出的一种电子表格软件,被广泛应用于数据分析、统计、图表制作等领域。

随着信息技术的不断发展,Excel软件也不断更新迭代,推出了多个版本和系列。

其中,Excel表格2020精简版绿色版是Excel软件的一种特殊版本,本文将对其特点和使用方法进行介绍。

二、特点1. 精简:Excel表格2020精简版绿色版相比于传统的Excel软件,其界面和功能更为简洁明了,大大提高了用户的使用便利性。

2. 绿色版:Excel表格2020精简版绿色版是一种绿色软件,不需要进行安装,使用起来更为便捷,并且对电脑系统没有任何影响。

三、功能1. 数据分析:Excel表格2020精简版绿色版可以进行各种复杂的数据分析,包括排序、筛选、统计等功能,可以帮助用户快速找到并分析数据规律。

2. 图表制作:通过Excel表格2020精简版绿色版,用户可以轻松制作各种图表,如折线图、柱状图、饼状图等,将数据直观地呈现出来。

3. 公式计算:Excel表格2020精简版绿色版内置了丰富的计算公式,用户可以通过简单的公式运算实现复杂的数据计算,提高工作效率。

4. 数据导入导出:Excel表格2020精简版绿色版支持多种数据格式的导入和导出,用户可以方便地将数据与其他软件进行互通。

四、使用方法1. 下载安装:用户可以通过冠方全球信息站或者其他可信赖的软件下载评台获取Excel表格2020精简版绿色版,并解压缩后即可使用。

2. 熟悉界面:打开软件后,用户可以先浏览一下软件的界面布局和各项功能按钮,熟悉软件的基本操作。

3. 创建表格:点击“新建”按钮,用户可以创建新的Excel表格,输入数据并进行编辑。

4. 数据分析:用户可以通过点击“数据分析”按钮,选择所需的数据分析功能,如排序、筛选等,进行数据分析操作。

5. 图表制作:在需要制作图表的数据区域,用户可以选择相应的图表类型,并点击“制作图表”按钮,即可生成相应的图表。

为什么鼠标右键新建没有excel

为什么鼠标右键新建没有excel

为什么鼠标右键新建没有excel为什么鼠标右键新建没有Excel在日常使用电脑的过程中,鼠标是我们最常使用的输入设备之一。

当我们需要在电脑上新建一个文件时,一般会通过鼠标右键菜单上的“新建”选项来完成。

然而,有些用户在右键菜单中没有找到Excel选项,即无法通过鼠标右键直接新建Excel文件。

究竟是什么原因导致这种情况的发生呢?本文将就该问题进行探讨。

首先,我们需要了解Excel是什么。

Excel是微软公司开发的一款广泛使用的电子表格软件。

它可以方便地进行数据的录入、计算、分析和展示,广泛应用于各个行业和领域。

然而,由于Excel的功能较为复杂,安装在电脑上的Excel软件占用的空间比较大,有些电脑可能没有预装Excel软件或者已经卸载了Excel软件,这就导致了鼠标右键菜单中没有Excel选项。

其次,鼠标右键菜单是根据文件关联来生成的。

文件关联是指将某种类型的文件与特定的应用程序关联起来,使得双击该文件会自动调用关联的应用程序打开它。

在Windows操作系统中,默认情况下,当我们安装Excel软件后,系统会将Excel文件(.xlsx、.xls等)与Excel应用程序关联起来。

这就意味着,当我们在文件资源管理器中右键点击一个Excel文件时,会在右键菜单中出现“新建Excel 文件”的选项。

然而,如果没有安装或卸载了Excel软件,系统就无法自动生成这项文件关联,从而导致右键菜单中没有Excel选项。

解决这个问题的方法有以下几种:1. 安装Microsoft Office套件:Microsoft Office是包含Excel在内的一整套办公软件产品。

在安装Microsoft Office套件时,Excel 软件会被自动安装并与Excel文件关联起来。

这样,在右键菜单中就能看到“新建Excel文件”的选项了。

2. 安装其他电子表格软件:Excel并不是唯一的电子表格软件,市面上还有很多免费或商业化的电子表格软件可供选择。

wincc变量导入导出

wincc变量导入导出

w i n c c变量导入导出 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】条件:安装EXCEL、wincc wincc组件中的DataMonitor Client和EXCEL工作本向导(后者不能确定一定装)注:已安装好XCEL、wincc wincc组件中的DataMonitor Client,但装EXCEL工作本向导时有可能提示“请安装EXCEL03或者更新版本”,造成无法安装EXCEL工作本向导,将office卸掉后,装了office07后可以安装EXCEL工作本向导。

安装EXCEL工作本向导的前提是必须安装wincc组件中的DataMonitor Client和EXCEL一.将Wincc项目变量以EXCEL表格形式导出1)打开要转出变量的项目2)依次点击:开始-SIMATIC-Wincc-Tools-TAG Export Import 会出现对话框,如图:3)Path:导出变量的EXCEL文档存放的路径Filename:EXCEL文档的名字Export:导出 Import:导入选好EXCEL变量表的存放路径和名字后,选择Export,点击Execute。

一般会导出三个EXCEL形式的文档,后缀为.VEX为变量表。

二.将EXCEL变量表导入Wincc项目1)打开要导入的Wincc项目,如果没有添加SIMATIC S7 PROTOCOL SOITE”驱动应先加该驱动。

2)打开TAG Expot Import工具(方式如上)Path:选择要导入的EXCEL变量表的路径Filename:导入的EXCEL变量表的文档名称Export:导出 Import:导入如果只导入表量表只需导入后缀为.VEX的EXCEL文档选好EXCEL变量表的存放路径和名字后,选择Import,点击Execute。

学籍管理系统使用说明书

学籍管理系统使用说明书

学籍管理系统项目推介书版本号:V2.0鳄龙科技(北京)有限公司2007年1月目录学籍系统使用说明 (1)一、系统概述 (1)1。

1、系统目标 (1)1。

2、系统优势 (1)1.3、系统概述 (1)二、系统主界面 (2)2。

1、系统主界面介绍 (2)2.2、系统工具栏介绍 (3)三、基本信息 (3)3。

1、学生信息 (3)3。

2、导入导出 (7)3。

3、相片管理 (11)四、学籍异动 (12)4.1、异动申请 (12)4.2、异动审批 (13)4。

3、学籍异动的流程 (14)4.4、学籍异动导出 (14)五、统计查询 (15)5.1、学生信息 (15)5。

2、历史查询 (16)5。

3、组合查询 (16)六、报表打印 (17)6。

1、学籍报表 (17)6.2、统计报表 (18)6.3、打印学籍 (19)6.4、异动报表 (19)6。

5、会考证号.............................................................................................. 错误!未定义书签。

七、公告&邮件 (20)7.1、公告信息 (20)7.2、邮件管理 (21)学籍系统使用说明一、系统概述1.1、系统目标1、实现中小学生全面动态监控,掌握信息瞬间变化的第一手资料。

为学生辍学、退学等提供有效的依据。

2、提供各种考试报名信息,实现高中学籍、高中会考考籍、中考、初中学籍、小学学籍的衔接,减轻相关人员的工作量。

3、查询统计:能随时查询学校、学生信息等相关数据.4、实现各种学籍异动智能化,减少管理人员工作量。

5、实现学生档案管理信息化,便于档案保存和管理。

6、实现各类学生学籍和证书管理的一体化、科学化。

7、保证各级管理部门数据一致,使管理工作规范化。

8、自动生成报表,使上报数据准确、及时、方便.1.2、系统优势1、支持计算机网络(INTERNET和局域网),也支持单机独立运行。

腾T讯X文档之在线表格使用详细教程

腾T讯X文档之在线表格使用详细教程

腾T讯X文档之在线表格使用详细教程一、简介微W信X的小程序中,腾T讯X文档中的在线表格(表格也即是与office 的excel表格相同)功能给信息统计带来了极大的便利,极大地提高了工作效率。

本文档将详细介绍在线表格的使用教程,主要内容为:从创建在线表格至将该表格导出为本地文件excel。

注:“在线表格”与“本地表格”的区别“在线表格”不是简单的表格,其特别之处在于可以多人在线编辑,这里所说的“在线”主要指的是其他人可以通过网络在不用下载表格的情况下直接查看或编辑该表格。

在线表格最常见的应用就是用于在微W信X群中统计微W信X 成员的信息,例如节假日或寒暑假即将来临,因疫情防控或其他需要,要统计微W信X群成员里面大家后续的行程计划,包括:出发日期、交通方式、目的地、返程日期、紧急联系人等等。

将设计好的在线表格后分享到微W信X群中,微W 信X成员打开后自己填写信息即可,大家可以同时在线编辑表格中的内容并实时更新,大大地减轻了信息统计人员工作量,提高了信息统计的效率。

“本地表格”主要是文件的性质,分享到微W信X群中后成员需要先下载或缓存后才可以查看,且不能进行同时编辑。

二、从无到有创建在线表格在这部分将介绍在线表格的最常用功能:自己创建表格→分享给他人编辑→将表格导出为本地文件。

第1步:在微W信X聊天界面,手指触摸(不要抬起)后下拉,“1”:在微W信X小程序中搜索框中输入“腾T讯X文档“,点击搜索后如下图所示,“2”:点击搜索结果中的“腾T讯X文档”。

1/182/18第1步图示第2步图示第2步:进入腾T 讯X 文档的主页如上右图所示,点击该页面底部中间位置的“”字,选择要新建的表格类型。

第3步:如图所示,选择要创建的文档类型,这里可选择的表格较多,还可以用于一些通用的模板(例如核酸坚持信息统计模板等)。

这里选择“在线表格”,创建空白的在线表格。

3/18第3步图示第4步图示第4步:在线空白表格创建后,随后进入表格的设计页面,“1”:是表格的名称,会同步表格中第一个输入文本的单元格的内容作为表格标题(名称),在第6步中将单独介绍表格名称的重命名。

cad表格导出excel工具

cad表格导出excel工具

CAD表格导出Excel工具1. 简介CAD表格导出Excel工具是一款方便快捷地将CAD软件中的表格数据导出为Excel文件的工具。

通过该工具,用户可以将CAD软件中的表格数据转换为Excel文件,以便于更好地进行数据处理和分析。

2. 功能特点•支持多种CAD软件表格格式:该工具支持导出多种CAD软件中的表格数据,包括但不限于AutoCAD、SolidWorks、CATIA等常见CAD软件。

•快速导出:通过该工具,用户可以快速将CAD软件中的表格数据导出为Excel文件,无需复杂的操作步骤,节省时间和精力。

•灵活的导出选项:用户可以根据需要选择导出的表格数据范围,例如可以选择导出全部表格数据,或者只导出特定行列的数据。

•导出结果准确可靠:该工具经过精心设计和调试,导出结果准确可靠,不会丢失表格数据或造成数据格式异常等问题。

•用户友好的界面:工具界面简洁直观,易于操作,即使是CAD软件的新手也能够轻松上手使用。

3. 使用说明使用该CAD表格导出Excel工具非常简单,只需按照以下步骤操作即可:步骤1:安装和启动工具首先,用户需要下载并安装CAD表格导出Excel工具。

安装完成后,双击工具的图标启动。

步骤2:打开CAD软件并导入表格数据在CAD软件中打开含有需要导出的表格数据的文件。

根据CAD软件的不同,用户可以使用相应的操作命令或工具找到并选择需要导出的表格。

步骤3:选择导出选项在CAD表格导出Excel工具界面上,用户可以根据需要选择导出的表格数据范围。

例如,用户可以选择导出全部表格数据,或者只导出特定行列的数据。

步骤4:导出为Excel文件当用户完成导出选项的设置后,点击工具界面上的“导出”按钮,工具将开始将CAD软件中的表格数据转换为Excel文件。

步骤5:保存Excel文件在弹出的文件保存对话框中,用户可以选择保存Excel文件的路径和名称。

点击“保存”按钮后,Excel文件将被保存到指定的位置。

将 Windows PowerShell 数据导出到 Excel

将 Windows PowerShell 数据导出到 Excel

将Windows PowerShell 数据导出到Excel您好,脚本专家!Excel 使用窍门Microsoft 脚本专家上月一直在澳大利亚生活和工作,当地同事的创造力和充沛精力总是让我大开眼界。

几天前,那里的一个朋友带起外出就餐。

他说餐馆离我们的酒店仅几步之遥。

四十分钟后,我们到达了一个非常漂亮的餐馆,此处可眺望悉尼港,悉尼歌剧院熠熠生辉,宛如嵌入五彩沙滩的海港大桥(世界上最长的单跨桥)张开结实的臂膀挽起两侧的半岛。

返回时,40 分钟的徒步之行并非一次短暂的闲庭漫步。

而是之前需要15 分钟热身和伸展运动的日常锻炼。

我之所以喜欢此次澳大利亚之行,原因之一是那里的同事看待问题的视角不同。

他们的方法似乎别出心裁,常常逻辑相悖。

在脚本编写领域,如果您头脑中抱定―经试用正确‖这一方法,就极易变得墨守成规。

很多时候,您切实希望看到相同的方法获取相同的结果。

以监控为例,通过使用Windows PowerShell,可轻松地获取本地计算机上进程使用情况的出色快照。

利用Ge cmdlet,您会得到条理清晰的输出,如图1所示。

图1 使用Get-Process 查看本地进程Get-Process cmdlet 的结果在大部分场合都非常有用。

它们显示了处于打开状态的句柄数量、各种内存占用视图使用率的快照。

当Windows PowerShell 2.0 推出后,您甚至可以使用Get-Process 和–computername 参数机检索这一概述信息。

既然有这些好处,那么究竟为什么有人会不厌其烦地研究其他产品?问题在于冗长的数据背后隐藏着大量细节。

数据往往隐藏的是更为重要的细节。

尽管将来Windows PowerShel –computername 参数听起来令人振奋,但目前它对网络管理员而言还是海市蜃楼。

因此,我们不得不使用Wi 规范(WMI) 和Win32_Process WMI 类来监视远程系统并以实用方式显示信息。

js导出Excel表格-方法一

js导出Excel表格-方法一
<script language="JavaScript" type="text/javascript">
/* * 默认转换实现函数,如果需要其他功能,需自行扩展
* 参数:
* tableID : HTML中Table对象id属性值
* 详细用法参见以下 TableToExcel 对象定义
myWorkbook.Worksheets(2).Delete();
jXls.DisplayAlerts = true;
myWorksheet = myWorkbook.ActiveSheet;
var readRow = 0, readCol = 0;var totalRow = 0, totalCol = 0;
var tabNum = 0;
//设置行高、列宽
if(this.columnWidth != -1)
myWorksheet.Columns.ColumnWidth = this.columnWidth;
else
myWorksheet.Columns.ColumnWidth = 7;
myExcelCell2 = myWorksheet.Cells(readRow + myCellRowSpan - 1, readCol + myCellColSpan - 1);
myWorksheet.Range(myExcelCell, myExcelCell2).Merge();
if (obj[x].id == this.tableID) {
ቤተ መጻሕፍቲ ባይዱ tabNum = x;
totalRow = obj[x].rows.length;

excel表格内容怎么导出为word

excel表格内容怎么导出为word

excel表格内容怎么导出为word
在Excel中录入好数据以后经常需要把Excel表导出到WORD中,因为在Excel中有着较好的编辑表格功能,而word却没有但观赏性比Excel强,Excel表格具体该如何导出到word中呢?下面店铺马上就告诉大家excel表格导出到word中的方法。

excel表格导出到word文档的方法
EXCEL导出word步骤1:先在Excel上完成列表、数据计算。

然后将文件保存在一个方便找到的地方。

EXCEL导出word步骤2:打开word,在需要导入表格的地方选择菜单栏中的“插入”按钮。

EXCEL导出word步骤3:在插入选项中选择“对象”。

EXCEL导出word步骤4:在对象对话框中点击“由文件创建”,然后点“浏览”,找到刚刚保存的Excel文件,点击“插入”,再点“确定”。

EXCEL导出word步骤5:就可以在word中看到已创建的表格,点击一下表格,可以设置表格的格式,如“居中”。

点击表格四个角的小点,拖动,可以调整表格大小。

SAP日记-ABAP导出EXCEL的两种方式(OLE_DOI)

SAP日记-ABAP导出EXCEL的两种方式(OLE_DOI)

SAP日记——ABAP导出EXCEL的两种方法提到OLE&DOI,我们不得不先说说两者这间的关系。

OLE是SAP早期与微软Office集成的工具,而DOI是它的替代技术。

在实际项目中使用到OLE&DOI的场合多是EXCEL表格的读入或是填制。

有些需要自动画表格及填数据,有的只是要求在原有的模版上填制数据。

根据不同的场合可以选用不同的技术。

(有些公司用EXCEL的打印来替代FORM)下面主要讲一下,OLE&DOI关于EXCEL的处理。

OLE实际上是类EXCEL中VBA的一种写法。

有一种简单的方法,就是你可以在EXCEL中把要实现的动作录制成宏,然后根据宏的代码把它改成OLE。

OLE同时也支持直接调用EXCEL宏程序(没有禁宏的前提下)。

DOI完全用类实现。

特点是,你不用再去记那些繁琐的VBA语言了,DOI都给你包装成类的方法了。

同时作为一个控件,已经集成在了SAP的GUI中了,你就可以在SAP的屏幕中写Office的东西了,不用再跳出一个窗口来了,减少一些误操作。

当然DOI也是支持调用EXCEL宏程序的,前提是宏没有被禁。

两种方法在实际项目中都有使用,有时候就要看实施顾问擅长于那个了,当然本人还是推荐用新的,但也不要丢了老的(有时候要维护一些老程序或许用得着)。

因为两种在技术上并没有什么难点,只有熟练度的差别。

我可记不住那么多的方法和类名,一般常备两份模版两份手册在身,边写边查,在项目进度之内完工就OK。

我读取EXCEL还是比较简单的,这里不再讲了。

既然,EXCEL的填制有自动画表格和填制模版之分,而自动画表格,显然就是什么都要自己写,工程量比较大,需要大量的调试(字体、表格宽度、颜色等),没有什么捷径,捧着手册慢慢写吧!对于填制模版,那自然要将模版上传到服务器,程序执行的时候再下载使用。

我使用的一般有3中:1. FTP2. T-code SMW03. T-code OAORFTP顾名思义,就是把文件传到FTP上,然后在运行的时候,直接输入文件服务器的路径,把模版在本地打开填制。

JS实现导出Excel的五种方法详解【附源码下载】

JS实现导出Excel的五种方法详解【附源码下载】

JS实现导出Excel的五种⽅法详解【附源码下载】本⽂实例讲述了JS实现导出Excel的五种⽅法。

分享给⼤家供⼤家参考,具体如下:这五种⽅法前四种⽅法只⽀持IE浏览器,最后⼀个⽅法⽀持当前主流的浏览器(⽕狐,IE,Chrome,Opera,Safari)<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>html 表格导出道</title><script language="JavaScript" type="text/javascript">//第⼀种⽅法function method1(tableid) {var curTbl = document.getElementById(tableid);var oXL = new ActiveXObject("Excel.Application");var oWB = oXL.Workbooks.Add();var oSheet = oWB.ActiveSheet;var sel = document.body.createTextRange();sel.moveToElementText(curTbl);sel.select();sel.execCommand("Copy");oSheet.Paste();oXL.Visible = true;}//第⼆种⽅法function method2(tableid){var curTbl = document.getElementById(tableid);var oXL = new ActiveXObject("Excel.Application");var oWB = oXL.Workbooks.Add();var oSheet = oWB.ActiveSheet;var Lenr = curTbl.rows.length;for (i = 0; i < Lenr; i++){ var Lenc = curTbl.rows(i).cells.length;for (j = 0; j < Lenc; j++){oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;}}oXL.Visible = true;}//第三种⽅法function getXlsFromTbl(inTblId, inWindow){try {var allStr = "";var curStr = "";if (inTblId != null && inTblId != "" && inTblId != "null") {curStr = getTblData(inTblId, inWindow);}if (curStr != null) {allStr += curStr;}else {alert("你要导出的表不存在");return;}var fileName = getExcelFileName();doFileExport(fileName, allStr);}catch(e) {alert("导出发⽣异常:" + + "->" + e.description + "!");}}function getTblData(inTbl, inWindow) {var rows = 0;var tblDocument = document;if (!!inWindow && inWindow != "") {if (!document.all(inWindow)) {return null;}else {tblDocument = eval(inWindow).document;}}var curTbl = tblDocument.getElementById(inTbl);var outStr = "";if (curTbl != null) {for (var j = 0; j < curTbl.rows.length; j++) {for (var i = 0; i < curTbl.rows[j].cells.length; i++) {if (i == 0 && rows > 0) {outStr += " t";rows -= 1;}outStr += curTbl.rows[j].cells[i].innerText + "t";if (curTbl.rows[j].cells[i].colSpan > 1) {for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) {outStr += " t";}}if (i == 0) {if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {rows = curTbl.rows[j].cells[i].rowSpan - 1;}}}outStr += "rn";}}else {outStr = null;alert(inTbl + "不存在 !");}return outStr;}function getExcelFileName() {var d = new Date();var curYear = d.getYear();var curMonth = "" + (d.getMonth() + 1);var curDate = "" + d.getDate();var curHour = "" + d.getHours();var curMinute = "" + d.getMinutes();var curSecond = "" + d.getSeconds();if (curMonth.length == 1) {curMonth = "0" + curMonth;}if (curDate.length == 1) {curDate = "0" + curDate;}if (curHour.length == 1) {curHour = "0" + curHour;}if (curMinute.length == 1) {curMinute = "0" + curMinute;}if (curSecond.length == 1) {curSecond = "0" + curSecond;}var fileName = "table" + "_" + curYear + curMonth + curDate + "_"+ curHour + curMinute + curSecond + ".csv";return fileName;}function doFileExport(inName, inStr) {var xlsWin = null;if (!!document.all("glbHideFrm")) {xlsWin = glbHideFrm;}else {var width = 6;var height = 4;var openPara = "left=" + (window.screen.width / 2 - width / 2)+ ",top=" + (window.screen.height / 2 - height / 2)+ ",scrollbars=no,width=" + width + ",height=" + height;xlsWin = window.open("", "_blank", openPara);}xlsWin.document.write(inStr);xlsWin.document.close();xlsWin.document.execCommand('Saveas', true, inName);xlsWin.close();}//第四种function method4(tableid){var curTbl = document.getElementById(tableid);var oXL;try{oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel}catch(e){alert("⽆法启动Excel!\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。

easyExcel导入导出excel表格

easyExcel导入导出excel表格

easyExcel导⼊导出excel表格⼀ easyExcel的导⼊导出 1.导⼊jar包 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beat1</version> </dependency>1.导⼊与导出 这⾥分两种⼀种是有模板的,⼀种是⽆Java模板的,先说有Java模板的 有Java模板的就是先定义⼀个实体类,继承BaseRowMode,再加上@ExcelProperty注解 @Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)public class TaskDetail extends BaseRowModel implements Serializable {private static final long serialVersionUID = 1L;@TableId(value = "id", type = IdType.AUTO)private Integer id;/*** ⽤户id*/private String userId;/*** 商品名称*/@ExcelProperty(value = {"商品名称"},index = 2)private String wareName;/*** 收货⼈⼿机号*/@ExcelProperty(value = {"收货⼈⼿机号"},index = 3)private String mobile;/*** 收货⼈姓名*/@ExcelProperty(value = {"收货⼈姓名"},index = 4)private String name;/*** 省*/@ExcelProperty(value = {"省份"},index = 5)private String province;/*** 市*/@ExcelProperty(value = {"城市"},index = 6)private String city;/*** 区县*/@ExcelProperty(value = {"区县"},index = 7)private String county;/*** 详细地址*/@ExcelProperty(value = {"详细地址"},index = 8)private String address;/*** 运单号*/@ExcelProperty(value = {"运单号"},index = 1)private String waybill;} 其中value对应的就是excel表头标题,index就是第⼏列,这⾥有两点需要注意这个bean必须继承 BaseRowModel,另⼀个是我这⾥这个类直接就是对应数据库表的实体类,在使⽤lombok省去get、set⽅法的@Data注解时,再继承BaseRowModel,导致了使⽤jdbc模板插⼊数据时出现异常,所以如果要⽤同⼀个bean类,最好⾃⼰写插⼊的sql。

VC++操作EXCEL表格,附带两个小例子

VC++操作EXCEL表格,附带两个小例子

C++读取Excel的XLS文件的方法有很多,但是也许就是因为方法太多,大家在选择的时候会很疑惑。

由于前两天要做导表工具,比较了常用的方法,总结一下写个短文,1.OLE的方式这个大约是最常用的方式,这个方式其实启动了一个EXCEL的进程在背后读写EXCEL 文件,这个方式的最大好处是什么事情都能做。

包括设置EXCEL的格式,增加删除Sheet,读写单元格,等等。

功能几乎是最全的,而且使用起来也不是特别的难。

其基本方法都是使用导出的.h文件进行OLE操作,但是由于OLE的接口说明文档不多,想非常完美的使用她们也不是太容易,好在例子也很多。

网上普遍认为OLE速度慢,EXCEL的OLE读写方式也基本一样。

但是读取速度可以改进,如果在读取的加载整个Sheet的Range的全部数据,而不是一个个单元格读取,那么速度还是相对不错。

想想原理也很简单,整体读取减少了OLE的交互次数。

OLE的写入方式一般只能几个进行比较方便,所以速度可能要快很多。

我自己的亲身体会是,一个EXCEL文件,100多列的字段,如果采用一个个单元格的读取方式,1s大约3条左右的记录,如果整体读取,速度可以提高几十倍。

OLE读写EXCEL方式功能很强大,读取速度还可以,但写入速度不高,当然这个方式不可能移植的,而且你必须安装了EXCEL。

2.Basic EXCEL 方式这是CodeProject上的一个推荐开源工程了,/KB/office/BasicExcel.aspx作者是基于EXCEL的文件格式进行的处理。

但是为什么叫Basic EXCEL呢。

他不支持很多东西,公式,文件格式,表格合并等(有人说中文支持也不好),所以可以认为他只支持最基本的EXCEL表格,我自己的尝试是如果这个EXCEL文件有其他元素(公式,格式等),使用Basic EXCEL读取会失败。

OLE读写EXCEL方式功能比较弱,由于是直接根据文件格式操作,读写速度都不错,你也不需要按照EXCEL,另外这个方式是可以移植的,但是有一些成本,其代码比较晦涩难懂,而且没有注释,另外即使在Windows平台上,告警也很多。

C#使用Npoi导出Excel并合并行列

C#使用Npoi导出Excel并合并行列

C#使⽤Npoi导出Excel并合并⾏列在⼯作开发中,客户经常要求数据库中数据导出到Excel表格。

以前⽅法是引⽤office相关组件,如果客户没有安装office,功能就会遇到问题。

现在⽤Npoi导出Excel,导出表格是合并⾏列,如图:导出的要求:合计列要进⾏合并,序号⼀致的要合并。

最后⼀⾏要合并列。

因为相同序号数量不是固定的,要动态算合并的⾏数。

合并⾏列接⼝:XXX.AddMergedRegion(new CellRangeAddress(开始⾏, 最后⼀⾏, 开始列, 最后⼀列));隐藏指定:sheet.SetColumnHidden(cellIndex, true);引⽤组件:NPOI.dll;NPOI.OOXML.dll;NPOI.OpenXml4Net.dll;NPOI.OpenXmlFormats.dll;ICSharpCode.SharpZipLib.dll;代码如下:/// <summary>////// </summary>/// <param name="dtSource">数据源</param>/// <param name="strFileName">保存路径</param>/// <param name="dvXH">序号</param>public void Export(DataTable dtSource,string strFileName,DataView dvXH=null){//创建⼯作簿 office2007以上XSSFWorkbook workbook = new XSSFWorkbook();//为⼯作簿创建⼯作表并命名ISheet sheet = workbook.CreateSheet("商品表");ICellStyle dateStyle = workbook.CreateCellStyle();IDataFormat format = workbook.CreateDataFormat();dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");#region 表头及样式int cellIndex = 0;IRow headerRow = sheet.CreateRow(0);for (int i = 0; i < dtSource.Columns.Count; i++){#region MyRegionstring ColumnsName = dtSource.Columns[i].ToString();if (dtSource.Columns[i].ColumnName.EndsWith("XH")){ColumnsName = "序号";sheet.SetColumnWidth(cellIndex, 3000);//sheet.SetColumnHidden(cellIndex, true);隐藏指定列}else if (dtSource.Columns[i].ColumnName.EndsWith("GoogName")){ColumnsName = "商品名称";sheet.SetColumnWidth(cellIndex,10000);//设置列宽}else if (dtSource.Columns[i].ColumnName.EndsWith("Num")){ColumnsName = "数量";sheet.SetColumnWidth(cellIndex, 5000);}else if (dtSource.Columns[i].ColumnName.EndsWith("Summation")){ColumnsName = "合计(元)";sheet.SetColumnWidth(cellIndex, 5000);}#endregion//设置⾏⾼headerRow.HeightInPoints = 35;headerRow.CreateCell(cellIndex).SetCellValue(ColumnsName);ICellStyle headStyle = workbook.CreateCellStyle();headStyle.WrapText = true;IFont font = workbook.CreateFont();//字体⼤⼩font.FontHeightInPoints = 12;font.Boldweight = 360;headStyle.SetFont(font);headerRow.GetCell(cellIndex).CellStyle = headStyle;cellIndex++;}#endregionint rowIndex = 1;//⾏数⼀定要从1⾏开始int count = 1;int startRow = 1;DataView dvSource = dtSource.DefaultView;if (dvXH!=null){foreach (DataRowView drv in dvXH){//1-10.11-12,13-14,15-16int rowcout = 0;dvSource.RowFilter = "XH='" + drv["XH"] + "'";foreach (DataRowView row in dvSource){#region 填充内容IRow dataRow = sheet.CreateRow(rowIndex);//序号ICell newCel0 = dataRow.CreateCell(0);ICellStyle style0 = workbook.CreateCellStyle();style0.DataFormat = format.GetFormat("text");newCel0.SetCellValue(row["XH"].ToString());//标的名称ICell newCel2 = dataRow.CreateCell(1);ICellStyle style2 = workbook.CreateCellStyle();style2.DataFormat = format.GetFormat("text");newCel2.SetCellValue(row["GoogName"].ToString());//标的数量ICell newCel4 = dataRow.CreateCell(2);ICellStyle style4 = workbook.CreateCellStyle();style4.DataFormat = format.GetFormat("text");newCel4.SetCellValue(row["Num"].ToString());//合计(元)ICell newCel8 = dataRow.CreateCell(3);ICellStyle style8 = workbook.CreateCellStyle();style8.DataFormat = format.GetFormat("text");newCel8.SetCellValue(row["Summation"].ToString());#endregionrowIndex++;rowcout++;}if (count == 1){//合并⾏数sheet.AddMergedRegion(new CellRangeAddress(startRow, rowcout, 3, 3));startRow = startRow + rowcout;}else{sheet.AddMergedRegion(new CellRangeAddress(startRow, startRow + rowcout - 1, 3, 3)); startRow = startRow + rowcout;}count++;}}else{#region MyRegionforeach (DataRowView row in dvSource){#region 填充内容IRow dataRow = sheet.CreateRow(rowIndex);//序号ICell newCel0 = dataRow.CreateCell(0);ICellStyle style0 = workbook.CreateCellStyle();style0.DataFormat = format.GetFormat("text");newCel0.SetCellValue(row["XH"].ToString());//商品名称ICell newCel1 = dataRow.CreateCell(1);ICellStyle style1 = workbook.CreateCellStyle();style1.DataFormat = format.GetFormat("text");newCel1.SetCellValue(row["GoogName"].ToString());//数量ICell newCel2 = dataRow.CreateCell(2);ICellStyle style2 = workbook.CreateCellStyle();style2.DataFormat = format.GetFormat("text");newCel2.SetCellValue(row["Num"].ToString());//合计(元)ICell newCel3 = dataRow.CreateCell(3);ICellStyle style3 = workbook.CreateCellStyle();style3.DataFormat = format.GetFormat("text");newCel3.SetCellValue(row["Summation"].ToString());#endregionrowIndex++;}#endregion}#region 拼接最后⼀⾏IFont fontLast = workbook.CreateFont();fontLast.FontHeightInPoints = 30;fontLast.Boldweight = 480;IRow dataRowLast = sheet.CreateRow(rowIndex);dataRowLast.HeightInPoints = 40;ICell newCelLast = dataRowLast.CreateCell(0);ICellStyle styleLast = workbook.CreateCellStyle();styleLast.DataFormat = format.GetFormat("text");styleLast.SetFont(fontLast);newCelLast.SetCellValue("制作⼈:张三");sheet.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 3));#endregionMemoryStream stream = new MemoryStream();workbook.Write(stream);var buf = stream.ToArray();using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write)){fs.Write(buf, 0, buf.Length);fs.Flush();}}实际运⽤中,涉及到数据,⽅法中有很多校验等操作,⽅法直观可读性不是太好,下⾯附上简单导出的⽅法:实际上导出Excel,总结有⼏点:1、引⽤相关组件2、创建⼀个⼯作簿,创建⼯作表并命名;3、设置表头及样式;4、填充数据;5、保存数据到指定位置;/// <summary>/// 简单导出数据/// </summary>/// <param name="dtSource">数据源</param>/// <param name="strFileName">保存路径</param>/// <param name="dvXH">序号</param>public void Export1(DataTable dtSource, string strFileName){//创建⼯作簿XSSFWorkbook workbook = new XSSFWorkbook();//为⼯作簿创建⼯作表并命名ISheet sheet = workbook.CreateSheet("商品表");IDataFormat format = workbook.CreateDataFormat();#region 表头及样式int cellIndex = 0;IRow headerRow = sheet.CreateRow(0);for (int i = 0; i < dtSource.Columns.Count; i++){//设置⾏⾼headerRow.HeightInPoints = 35;headerRow.CreateCell(cellIndex).SetCellValue(dtSource.Columns[i].ToString());ICellStyle headStyle = workbook.CreateCellStyle();headStyle.WrapText = true;IFont font = workbook.CreateFont();//字体⼤⼩font.FontHeightInPoints = 12;font.Boldweight = 360;headStyle.SetFont(font);headerRow.GetCell(cellIndex).CellStyle = headStyle;cellIndex++;}#endregion#region 数据填充int rowIndex = 1;//⾏数⼀定要从1⾏开始,因为上⾯已经创建了表头为0⾏;DataView dvSource = dtSource.DefaultView;foreach (DataRow row in dtSource.Rows){int ColumnIndex = 0;IRow dataRow = sheet.CreateRow(rowIndex);foreach (DataColumn column in dtSource.Columns){//序号ICell newCel0 = dataRow.CreateCell(ColumnIndex);ICellStyle style0 = workbook.CreateCellStyle();style0.DataFormat = format.GetFormat("text");//数据类型newCel0.SetCellValue(row[column.ColumnName].ToString());ColumnIndex++;}rowIndex++;}#endregion#region 保存到指定位置MemoryStream stream = new MemoryStream();workbook.Write(stream);var buf = stream.ToArray();using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write)) {fs.Write(buf, 0, buf.Length);fs.Flush();}#endregion}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

easyexcelfactory 用法

easyexcelfactory 用法

easyexcelfactory 用法easyexcelfactory是一款功能强大、易于使用的Excel插件,可以帮助用户更快速、更高效地完成Excel表格的制作、数据分析和数据可视化等任务。

本篇文章将向您介绍easyexcelfactory的基本用法,包括安装、基本操作、常用功能和高级功能等。

一、安装easyexcelfactory的安装非常简单,只需要在Excel中打开“插件”选项卡,在“扩展程序”中搜索easyexcelfactory并安装即可。

安装完成后,您可以在Excel界面看到easyexcelfactory的图标,并可以使用它提供的各种功能。

二、基本操作1.打开表格:打开Excel表格,并在easyexcelfactory中选择要编辑的工作表。

2.插入数据:使用easyexcelfactory插入数据的方式非常多样,包括从外部数据源导入、粘贴文本、导入CSV文件等。

3.格式化表格:easyexcelfactory提供了一系列格式化工具,如字体、颜色、对齐方式、边框等,可以帮助您快速美化表格。

4.插入图表:easyexcelfactory支持多种图表类型,如柱状图、折线图、饼图等,可以帮助您更好地展示数据。

三、常用功能1.数据筛选:easyexcelfactory提供了一系列数据筛选工具,如条件格式化、自动筛选、高级筛选等,可以帮助您快速找到需要的数据。

2.数据透视表:easyexcelfactory支持创建数据透视表,可以根据需要对数据进行分组、汇总和筛选,方便地进行数据分析。

3.公式编辑器:easyexcelfactory内置了公式编辑器,可以帮助您快速编辑和创建复杂的数学公式。

4.导出数据:easyexcelfactory支持多种导出格式,如Excel、CSV、PDF等,方便您将数据分享给他人或保存到其他应用程序中。

四、高级功能1.宏录制:easyexcelfactory支持宏录制功能,可以帮助您记录和重复执行一系列操作,提高工作效率。

VB6[1].0_导出excel_方法源代码

VB6[1].0_导出excel_方法源代码

往链点点通共享资源,了解更多请登录VB6.0 导出excel 方法源代码方法一:用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel表中,或者写成CSV格式方法二:直接把查询结果导出成Excel工作表Public Sub Export(formname As Form, flexgridname As String)Dim xlApp As Object 'Excel.ApplicationDim xlBook As Object 'Excel.WorkbookDim xlSheet As Object 'Excel.WorksheetScreen.MousePointer = vbHourglassOn Error GoTo Err_ProcSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)'Begin to fill data to sheetDim i As LongDim j As IntegerDim k As IntegerWith formname.Controls(flexgridname)For i = 0 To .rows - 1k = 0For j = 0 To .Cols - 1If .colwidth(j) > 20 Or .colwidth(j) < 0 Thenk = k + 1xlSheet.Cells(i + 1, k).Value = "'" & .TextMatrix(i, j)End IfNext jNext iEnd WithxlApp.Visible = TrueScreen.MousePointer = vbDefaultExit SubErr_Proc:Screen.MousePointer = vbDefaultMsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提示"End Sub===================================Public Function ExporToExcel(strOpen As String)'*********************************************************'* 名称:ExporToExcel'* 功能:导出数据到EXCEL'* 用法:ExporToExcel(sql查询字符串)'*********************************************************Dim Rs_Data As New ADODB.RecordsetDim Irowcount As IntegerDim Icolcount As IntegerDim cn As New ADODB.ConnectionDim xlApp As New Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlQuery As Excel.QueryTableWith Rs_DataIf .State = adStateOpen Then.CloseEnd If.ActiveConnection = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Dri ver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF; SourceDB=D:\DBF;".CursorLocation = adUseClient.CursorType = adOpenStatic.Source = strOpen.OpenEnd WithWith Rs_DataIf .RecordCount < 1 ThenMsgBox ("没有记录!")Exit FunctionEnd If'记录总数Irowcount = .RecordCount'字段总数Icolcount = .Fields.CountEnd WithSet xlApp = CreateObject("Excel.Application")Set xlBook = NothingSet xlSheet = NothingSet xlBook = xlApp.Workbooks().AddSet xlSheet = xlBook.Worksheets("sheet1")xlApp.Visible = True'添加查询语句,导入EXCEL数据Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))xlQuery.FieldNames = True '显示字段名xlQuery.RefreshxlApp.Application.Visible = TrueSet xlApp = Nothing '"交还控制给ExcelSet xlBook = NothingSet xlSheet = NothingEnd Function=============================='*********************************************************'* 名称:OutDataToExcel'* 功能:将MsFlexGrid控件中显示的内容输出到Excel表格中进行打印'*********************************************************Public Sub OutDataToExcel(Flex As MSFlexGrid) '导出至ExcelDim s As StringDim i As IntegerDim j As IntegerDim k As IntegerOn Error GoTo ErtMe.MousePointer = 11Dim Excelapp As Excel.ApplicationSet Excelapp = New Excel.ApplicationOn Error Resume NextDoEventsExcelapp.SheetsInNewWorkbook = 1Excelapp.Workbooks.AddExcelapp.ActiveSheet.Cells(1, 3) = sExcelapp.Range("C1").SelectExcelapp.Selection.Font.FontStyle = "Bold"Excelapp.Selection.Font.Size = 16With Flexk = .RowsFor i = 0 To k - 1For j = 0 To .Cols - 1DoEventsExcelapp.ActiveSheet.Cells(3 + i, j + 1) = "'" & .TextMatrix(i, j)Next jNext iEnd WithMe.MousePointer = 0Excelapp.Visible = TrueExcelapp.Sheets.PrintPreviewErt:If Not (Excelapp Is Nothing) ThenExcelapp.QuitEnd IfEnd Sub一个按钮,点击出现对话框(对话框控件已经有),在硬盘里面查找excel文件(当然,后缀名是xls了),找到目标excel文件后,该excel文件里面是一些数据,点击确定,就可以把excel里面的内容保存到MSFlexGrid控件里面了还有一个,按钮,点击后出现对话框,可以保存MSFlexGrid里面的东西到一个excel里面谢谢大家了用CommonDialog可以解决选定打开.xls文件问题然后就是读取进去哈哈保存代码如下'添加command控件一个MSFlexGrid控件一个Private Sub Command1_Click()On Error Resume NextDim fileadd As StringCommonDialog1.ShowOpenCommonDialog1.Filter = "xls文件(*.xls)|*.xls" '选择你要的文件fileadd = CommonDialog1.FileNameMSHFlexGrid1.Redraw = False '关闭表格重画,加快运行速度Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open(fileadd) '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlsheet = xlBook.Worksheets("Sheet1") '设置活动工作表For R = 0 To MSHFlexGrid1.Rows - 1 '行循环For C = 0 To MSHFlexGrid1.Cols - 1 '列循环MSHFlexGrid1.Row = RMSHFlexGrid1.Col = CxlBook.Worksheets("Sheet1").Cells(R + 1, C + 1) = MSHFlexGrid1.Text '保存到EXCEL Next CNext RMSHFlexGrid1.Redraw = TruexlApp.DisplayAlerts = False '不进行安全提示'Set xlsheet = Nothing'Set xlBook = Nothing'xlApp.Quit'Set xlApp = Nothing。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

今天说一种实现导出Excel的第三方组件MyXls组件。

MyXls是一个操作Excel的开源类库,支持设置字体、列宽、行高(由BOSSMA 实现)、合并单元格、边框、背景颜色、数据类型、自动换行、对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单格式的Excel文件十分快捷方便。

MyXLS是一个导出Excel的好工具,速度快,体积小,而且也不用担心使用Com 生成Excel时资源释放的问题了
点击下载MyXls下载
代码实现开始:
(1)下载dll,在你的程序中添加引用,并用引用命名空间
using org.in2bits.MyXls;
using System.IO;
(2)创建Excel工单薄
XlsDocument xls = new XlsDocument();
Worksheet sheet = xls.Workbook.Worksheets.Add("新Sheet");
(3)添加内容到sheet中
sheet.Cells.Add(插入单元格的行,插入单元格的列, 插入的值);
例如:
sheet.Cells.Add(1,1, "我是第一行第一列的值");
它的Add方法有四个重载,我这里只讲本例中用到的方法。

(4)保存
下面完整代码,需要引入命名空间
using org.in2bits.MyXls;
using System.IO;
/// <summary>
/// 第三方插件MyXls导出Excel数据
/// </summary>
/// <param name="dt">数据源</param>
/// <param name="filePath">保存路径包含文件名</param>
/// <returns>返回是否成功信息</returns>
public static string DataTableToExcel(System.Data.DataTable dt, string filePath)
{
string sheetName = Path.GetFileNameWithoutExtension(filePath);
string msg = "";
XlsDocument xls = new XlsDocument();
try
{
//最大行限制
int MaxRowCount = 60000;
int rowCount = dt.Rows.Count;
int colCount = dt.Columns.Count;
if (rowCount > 0 && rowCount <= MaxRowCount)
{
Worksheet sheet = xls.Workbook.Worksheets.Add(sheetName);
for (int j = 0; j < colCount; j++)
{
sheet.Cells.Add(1, j + 1, dt.Columns[j].ColumnName.ToString()); }
for (int j = 0; j < rowCount; j++)
{
for (int k = 0; k < colCount; k++)
{
sheet.Cells.Add(j + 2, k + 1, dt.Rows[j][k].ToString());
}
}
}
else //超过sheet表单的就再创适sheet表单
{
int sheetCount = 1; //sheet表单个数
if (rowCount % MaxRowCount == 0)
{
sheetCount = rowCount / MaxRowCount;
}
else
{
sheetCount = rowCount / MaxRowCount + 1;
}
int Flag = 1;
for (int m = 0; m < sheetCount; m++)
{
//添加一个sheet表单
Worksheet sheet = xls.Workbook.Worksheets.Add("第" + (m + 1) + "页数据");
//如果不是最后一个表单的话并且最后一个sheet表单数据不等于60000
if (Flag == sheetCount && (rowCount % MaxRowCount != 0))
{
int newrowCount = rowCount - ((Flag - 1) * MaxRowCount); //最后一个sheet的数据int RowIndex = 0;
for (int j = 0; j < colCount; j++)
{
sheet.Cells.Add(1, j + 1, dt.Columns[j].ColumnName.ToString());
}
int startIndex = (Flag - 1) * MaxRowCount;
for (int n = startIndex; n < startIndex + newrowCount; n++)
{
for (int t = 0; t < colCount; t++)
{
sheet.Cells.Add(RowIndex + 2, t + 1, dt.Rows[n][t].ToString());
}
RowIndex++;
}
}
else
{
for (int j = 0; j < colCount; j++)
{
sheet.Cells.Add(1, j + 1, dt.Columns[j].ColumnName.ToString());
}
int startIndex = (Flag - 1) * MaxRowCount;
int rowIndex = 0;
for (int n = startIndex; n < startIndex + MaxRowCount; n++)
{
for (int t = 0; t < colCount; t++)
{
sheet.Cells.Add(rowIndex + 2, t + 1, dt.Rows[n][t].ToString());
}
rowIndex++;
}
}
Flag++;
}
}
#region 客户端保存
//第一种保存方式:适用于Winform / WebForm
string strFilePath = Path.GetDirectoryName(filePath);
xls.FileName = sheetName;
xls.Save(strFilePath);
xls = null;
//第二种保存方式适用于WebForm,可以选择保存路径
//using (MemoryStream ms = new MemoryStream())
//{
// xls.Save(ms);
// ms.Flush();
// ms.Position = 0
// xls = null;
// HttpResponse response = System.Web.HttpContext.Current.Response;
// response.Clear();
// response.Charset = "UTF-8";
// response.ContentType = "application/vnd-excel";//"application/vnd.ms-excel"; // System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + xlsname));
// //System.Web.HttpContext.Current.Response.WriteFile(fi.FullName);
// byte[] data = ms.ToArray();
// System.Web.HttpContext.Current.Response.BinaryWrite(data); //}
#endregion
}
catch
{
xls = null;
GC.Collect();
return "出现异常";
}
finally
{
xls = null;
GC.Collect();
}
return msg;
}。

相关文档
最新文档