程序化导入导出EXCEL数据,完全由模板输出
话说,上次做了个自动化导入导出EXCEL数据程序,用的很是Happy.
但,实在是没想到脖子离职,一下子市场部所有的数据都压在了我一个人身上。
还是要花少量时间来COPY /PASTE,每天都觉得事情做不完。
无奈啊,作为一个懒惰的人,不得不再想办法,简化工作。
于是有了这次的大更新。
这次采用ASPOSE.CELLS来完成数据的导出,GEMBOX的模板功能太弱了,动不动无法导入模板。
虽然是采用了ASPOSE来完成,但自己也要动手来改一下它的数据导入到excel函数,改成使用自己写的,不然真的很崩溃,格式完全让我无语。
言归正传,将主要用到的方法写下来。
Aspose.Cells.Workbook mybook = new Aspose.Cells.Workbook();//实例化
mybook.Open(Application.StartupPath + "/Template/" + myTask.TaskTemplate);//加载模板Aspose.Cells.Worksheet ws2 = mybook.Worksheets[myTask.SheetArea[i].name];//获取sheetInsertData_ASPOSE(ws2, myTask.SheetArea[i]);//填充sheet
mybook.Save(textBox1.Text.ToString() + "/ASPOSE_" + myTask.TaskName + dateTimePicker1.Value.ToString("yyyyMMdd") + ".xls");//保存数据
改用自己编写的填充方法,主要是因为ASPOSE的格式存在问题,如果你多次对一个表进行操作的话。
{
try
{
for (int i = 0; i < DataArea.DataArea.Length; i++)
{
string key = DataArea.DataArea[i].datatype;
DataTable dt = ds1.Tables[0];
//DataTable dt = ds1.Tables[0].DefaultView.ToTable(false, DataArea.DataArea[i].data_column_name.Split(','));
DataTable dt_out = dt.Clone();
//DataRow aDataRow = dtItemPrice.NewRow();
//aDataRow.ItemArray = drItemPrices[i].ItemArray;
//dtItemPrice.Rows.Add(aDataRow);
DataRow[] myrows = dt.Select(myTask.DataType + "='" + key + "'");
foreach (DataRow row in myrows)
{
dt_out.ImportRow(row);
}
DataTable dt_result = dt_out.DefaultView.ToTable(false, DataArea.DataArea[i].data_column_name.Split(','));
string[] columnname = DataArea.DataArea[i].column_name.Split(',');
int s = columnname.Length - 1;
for (int j = dt_result.Columns.Count - 1; j >= 0; j--)
{
if (s >= 0)
{
dt_result.Columns[j].ColumnName = columnname[s].ToString();
s--;
}
else
{
break;
}
}
//int firstColumn = 0;
//firstColumn =((int)(Convert.ToChar(DataArea.DataArea[i].start_column.Substring(0, 1)))-(int)('A'));
//ws.Cells[DataArea.DataArea[i].start_column].PutValue(0);
//ws.ActiveCell = DataArea.DataArea[i].start_column;
//Aspose.Cells.Cell mycell = ws.Cells[DataArea.DataArea[i].start_column];
//mycell.PutValue(0);
//ws.ActiveCell = DataArea.DataArea[i].start_column;
InsertDataTableWithAspose(ws.Cells, dt_result, 0, GetColumnIndex(DataArea.DataArea[i].start_column) , true);
//int sx = ws.Cells.ImportDataTable(dt_result, true,DataArea.DataArea[i].start_column);
//ws.AutoFitColumns();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
{
int num2;
int num3 = 0;
if (columnHeaders)
{
num2 = 0;
do
{
Cells[startRow, startColumn + num2].PutValue( dataTable.Columns[num2].ColumnName);
num2++;
}
while (num2 < dataTable.Columns.Count);
num3++;
}
int num = 0;
if (dataTable.Rows.Count > 0)
{
do
{
num2 = 0;
do
{
Cells[startRow + num3 + num, startColumn + num2].PutValue(dataTable.Rows[num][num2]);
num2++;
}
while (num2 < dataTable.Columns.Count);
num++;
}
while (num < dataTable.Rows.Count);
}
return (num + num3);
}
好了,差不多了,这样只要加载了数据,就可以填充到自己需要的模板中了。
哈哈,又可以HAPPY的轻松的应对工作了。
近期准备对用到EXCEL导入导出功能的一些控件作个总结,大概有EXCELLIBRAY,MYXLS,NPOI,GEMBOX,ASPOSE这几个主流的控件或者库。
整理一下这些东东的优缺点,也作为一个归档。
转载于:https://www.cnblogs.com/massinger/archive/2011/05/16/2047464.html
程序化导入导出EXCEL数据,完全由模板输出相关推荐
- toad导入数据_Oracle 使用TOAD实现导入导出Excel数据
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Orac ...
- java 导入excel工具类_java Excel工具类,导入导出Excel数据
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...
- java excel data 导入数据_java实现导入导出excel数据
项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件. 一.POI和JXL介绍 1.POI:是对所有office资源进行读写的一套工 ...
- java 动态导入excel_java实现导入导出excel数据
项目需要,要实现一个导入导出excel的功能,于是,任务驱动着我学习到了POI和JXL这2个java操作Excel的插件. 一.POI和JXL介绍 1.POI:是对所有office资源进行读写的一套工 ...
- python导入excel数据-Python数据处理之导入导出excel数据
欢迎点击上方"AntDream"关注我 .Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况.这里做一个Python处理Excel数据的总结, ...
- POI导入导出Excel数据(IDEA版)简单运用
一.POI Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能,简单来说就是能在Java程序中导入导出W ...
- toad mysql导入excel_Oracle 使用TOAD实现导入导出Excel数据
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Orac ...
- 用toad实现oracle数据迁移,Oracle 使用TOAD实现导入导出Excel数据
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Orac ...
- 导Excel数据到Oracle的脚本,Oracle使用TOAD实现导入导出Excel数据
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的.Quest Software为此提供了高效的Orac ...
- Struts2 POI 导入导出Excel数据
页面端: <html> <head> <title>导入数据</title> </head> <body> <h1> ...
最新文章
- [Android学习笔记]理解焦点处理原理的相关记录
- 墨迹天气语音包_小米有品“智能AI翻译机”评测,还内置了语音助手,随身WiFi功能...
- 计算机考研英语词汇书,求助:有知道电脑背考研英语单词的
- Mysql 引擎 表还是库_mysql 库、表、引擎
- React Native 轻松集成统计功能(iOS 篇)
- gradle脚本源码查看环境搭建
- ubuntu18.04 init setting
- 网页预览时,仿宋_GB2312 字体不能正确显示,uni-app移动端字体不显示
- 微信公众号网页开发步骤
- Spring boot微服务项目中上传图片报错,The field file exceeds its maximum permitted size of 1048576 bytes.
- vue优化技巧之mixins
- freebase api的使用
- 一文搞懂如何兼容苹果HomeKit?智汀助你轻松打造智慧家庭
- RIFT Multi-Modal Image Matching Based on Radiation-Variation Insensitive Feature Transform
- win10系统安装Docker详解
- ThinkPHP门面源码解析
- 月均播放超2.8亿,vlog会是品牌B站推广新风口吗?
- 什么是 Substrate
- 计算机网络实验路由器配置
- MT6765 PCB设计资料,MT6765芯片参考资料