导出数据到Excel表(不需要本地安装Office)
来源:互联网 发布:网络优化需要培训费吗 编辑:程序博客网 时间:2024/05/19 16:51
1.需要下载一个用于导出的动态库:
Aspose.Cells.dll
动态库+代码下载链接:http://download.csdn.net/detail/shaoyiju/9397997
2.动态库使用方法
打开工程项目-->解决方案资源管理器-->引用-->右键“添加引用”-->Tab页“最近”,选择动态库确定后就可以使用啦
3.上码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Reflection;using Aspose.Cells;namespace ATMClient.GSPublic{ /// <summary> /// 这个类是将DataSet中的数据导出到Excel表,不需调用本地的EXCEL.EXE进程 /// </summary> class Export2Eexel { private void Test() { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.TableName = "LogTable"; dt.Columns.Add("序号", typeof(string)); dt.Columns.Add("用户", typeof(string)); dt.Columns.Add("日期", typeof(string)); dt.Columns.Add("操作", typeof(string)); DataRow dr = dt.NewRow(); dr[0] = "1"; dr[1] = "admin"; dr[2] = "2015-11-22 16:30:00"; dr[3] = "登录"; dt.Rows.Add(dr); ds.Tables.Add(dt); ExportIntoExcel(ds); return; } private void ExportIntoExcel(DataSet ds) { //打开保存对话框 Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog(); dlg.FileName = "ATM操作日志_" + DateTime.Now.ToString("yyyy-MM-dd_HHmmss"); dlg.Filter = "EXCEL文件(*.xls, *.xlsx)|*.xls;*.xlsx|所有文件(*.*)|*.*"; Nullable<bool> Res = dlg.ShowDialog(); if (Res.HasValue) { if (Res.Value == true) { string fileName = dlg.FileName; try { List<int> columWidthList = new List<int>() { 10, 15, 30, 30 }; if (DataSetToExcel(fileName, "测试标题", ds, columWidthList)) { System.Windows.MessageBox.Show("导出成功"); } else { System.Windows.MessageBox.Show("导出失败"); } } catch (Exception ex) { string err = ex.Message; return; } } } return; } public bool DataSetToExcel(string strFilePath,string reportTitleName, DataSet dataSet, List<int> columWidthList) { Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; Cells cell = ws.Cells; DataTable dataTable = dataSet.Tables[0]; int rowCount = dataTable.Rows.Count; //不包括字段名 int columnCount = dataTable.Columns.Count; if (rowCount == 0) { return false; } //合并第一行单元格作为标题 Range range = cell.CreateRange(0, 0, 1, columnCount); range.Merge(); cell["A1"].PutValue(reportTitleName); //设置行高 cell.SetRowHeight(0, 20); // 设置标题字体样式 Style style1 = wb.Styles[wb.Styles.Add()]; style1.HorizontalAlignment = TextAlignmentType.Center; //文字居中 style1.Font.Name = "宋体"; style1.Font.IsBold = true; //设置粗体 style1.Font.Size = 12; //设置字体大小 // 设置内容字体样式 Style style2 = wb.Styles[wb.Styles.Add()]; style2.HorizontalAlignment = TextAlignmentType.Center; style2.Font.Size = 10; //给单元格关联样式 cell["A1"].SetStyle(style1); //报表名字 样式 //设置Execl列名 for (int i = 0; i < columnCount; i++) { cell[1, i].PutValue(dataTable.Columns[i].ColumnName); cell[1, i].SetStyle(style2); } //设置单元格内容 int posStart = 2; for (int r = 0; r < rowCount; r++) { for (int c = 0; c < columnCount; c++) { cell[r + posStart, c].PutValue(dataTable.Rows[r][c]); cell[r + posStart, c].SetStyle(style2); } } //设置列宽 for (int i = 0; i < columnCount; i++) { cell.SetColumnWidth(i, Convert.ToDouble(columWidthList[i].ToString())); } //保存excel表格 wb.Save(strFilePath); return true; } }}
0 0
- 导出数据到Excel表(不需要本地安装Office)
- 导出数据到Excel方法(web 不需要安装office)
- 导出数据到Excel表(依赖本地Office)
- 不需要安装office excel,导出GridView所有数据为Excel
- asp.net导出数据到execl并保存到本地 不需要调用Office组件
- .net导出数据到Excel (安装office excel环境情况)
- .Net and Office 系列:将数据导出到Excel汇总
- 导出excel到本地
- 不安装office导出excel
- 导出Excel--不用安装office
- 将dataset中的数据导出至Excel中而不需要安装MS Excel的方法(含UNICODE支持)
- 导出excel表格到本地
- .Net and Office 系列:利用Excel 的xml 电子表格将数据导出到Excel
- 数据导出到Excel
- 数据导出到Excel
- 导出数据到EXCEL
- 导出数据到Excel
- 导出数据到EXCEL
- B站的DanmakuFlameMaster的使用
- 读完这个我懂了JNDI
- C++的类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast
- Android卡片式列表布局
- linux下获取CPUID,MAC地址,硬盘序列号,主板序列号
- 导出数据到Excel表(不需要本地安装Office)
- 移动端:active伪类无效的解决方法
- android 一些总结 1.2-1.10
- Echars在bootstrap的tab下切换不能正常显示的问题
- iOS开发实践之多线程(GCD)
- android studio在编辑时出现如Failed to sync Gradle project类似的问题时的解决方案
- PyQt5系列教程(六)如何让界面和逻辑分离
- three.js学习笔记 相机控件
- 从零开始写javaweb框架笔记10-搭建轻量级JAVAWEB框架-确定目标