using System;
using System.Data;
using org.in2bits.MyXls;
namespace Maticsoft.Common
{
/// <summary>
/// 操作EXCEL导出数据报表的类
/// Copyright (C) Maticsoft
/// </summary>
public class DataToExcel
{
public DataToExcel()
{
} /// <summary>
/// 绑定数据库生成XLS报表
/// using org.in2bits.MyXls;
/// </summary>
/// <param name="ds">获取DataSet数据集</param>
/// <param name="xlsName">报表表名</param>
public void toExcel(DataTable table, string xlsName)
{
XlsDocument xls = new XlsDocument();
xls.FileName = xlsName + ".xls";
int rowIndex = ;
int colIndex = ;
Worksheet sheet = xls.Workbook.Worksheets.Add("Sheet1");
Cells cells = sheet.Cells;
foreach (DataColumn col in table.Columns)
{
colIndex++;
cells.Add(, colIndex, col.ColumnName);
} foreach (DataRow row in table.Rows)
{
rowIndex++;
colIndex = ;
foreach (DataColumn col in table.Columns)
{
colIndex++;
Cell cell;
if (col.DataType == Type.GetType("System.Int32"))
{
if (Str2Int(row[col.ColumnName].ToString()) != )
{
cell = cells.Add(rowIndex, colIndex, Str2Int(row[col.ColumnName].ToString()));
}
}
else if (col.DataType == Type.GetType("System.Decimal") || col.DataType == Type.GetType("System.Double"))
{
if (Str2Double(row[col.ColumnName].ToString()) != )
{
cell = cells.Add(rowIndex, colIndex, Str2Double(row[col.ColumnName].ToString()));
}
}
else
{
if (!row[col.ColumnName].ToString().Equals("1900-01-01"))
cell = cells.Add(rowIndex, colIndex, row[col.ColumnName].ToString());
}
}
}
xls.Send();
} public DataTable FromExcel(string filepath)
{
XlsDocument xls = new XlsDocument(filepath);
Worksheet sheet = xls.Workbook.Worksheets["Sheet1"];
DataTable dt = new DataTable();
DataColumn cl = new DataColumn();
cl = new DataColumn("ID", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("EID", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("DID", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Type", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Model", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Custodian", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("StorageUnits", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Money", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Status", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("BuyTime", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("StorageSites", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("FinancialNumbers", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
cl = new DataColumn("Remark", System.Type.GetType("System.String"));
dt.Columns.Add(cl);
for (int i = ; i < sheet.Rows.Count; i++)
{
DataRow row = dt.NewRow();
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
row[] = sheet.Rows[ushort.Parse(i.ToString())].GetCell().Value;
dt.Rows.Add(row);
}
return dt;
} public double Str2Double(string str)
{
double num = ;
try
{
num = Convert.ToDouble(str);
}
catch
{ }
return num;
} public int Str2Int(string str)
{
int num = ;
try
{
num = Convert.ToInt32(str);
}
catch
{ }
return num;
}
}
}

MyXLS案例的更多相关文章

  1. 数据库优化案例——————某市中心医院HIS系统

    记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...

  2. SQL Server内存遭遇操作系统进程压榨案例

    场景: 最近一台DB服务器偶尔出现CPU报警,我的邮件报警阈(请读yù)值设置的是15%,开始时没当回事,以为是有什么统计类的查询,后来越来越频繁. 探索: 我决定来查一下,究竟是什么在作怪,我排查的 ...

  3. solr_架构案例【京东站内搜索】(附程序源代码)

    注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...

  4. Yeoman 官网教学案例:使用 Yeoman 构建 WebApp

    STEP 1:设置开发环境 与yeoman的所有交互都是通过命令行.Mac系统使用terminal.app,Linux系统使用shell,windows系统可以使用cmder/PowerShell/c ...

  5. 了不起的 nodejs-TwitterWeb 案例 bug 解决

    了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...

  6. 一个表缺失索引发的CPU资源瓶颈案例

    背景 近几日,公司的应用团队反应业务系统突然变慢了,之前是一直比较正常.后与业务部门沟通了解详情,得知最近生意比较好,同时也在做大的促销活动,使得业务数据处理的量出现较大的增长,最终系统在处理时出现瓶 ...

  7. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  8. Redis简单案例(二) 网站最近的访问用户

    我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我们可以先简单了解一下在oracle.sqlserve ...

  9. springmvc+bootstrap+jquerymobile完整搭建案例(提供下载地址)

    用一张简单的截图说明下,然后提供一个下载地址. bootstrap的大部分样式官方都是写好的,所以只需要class="官方样式即可",具体可以看官方的案例,下面来个地址 http: ...

随机推荐

  1. 队列的实现(JAVA)

    定义    队列(queue)是一种特殊的线性表,它只允许在表的前端进行删除,在表的后端进行插入. 进行插入端的称为队尾,进行删除端的称为队头.队列是先进先出原则的.队列的实现同样可以 使用两种方式来 ...

  2. The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    The server is temporarily unable to service your request due to maintenance downtime or capacity pro ...

  3. 数据表列名与数据库关键字冲突,在Hibernate下的解决办法

    设计了一个数据库,某一个列名字是key,这与mysql数据库关键字冲突了,Hibernate下save总是报错. 在mysql命令中,解决办法很简单,只需要将关键字key用引号括起来就好了. 在Hib ...

  4. Text Reverse

    Text Reverse Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  5. cocos2d-x 2.1.4 使用create_project.py脚本创建项目+ant打包项目

    1.创建项目:执行create_project.py脚本,进入Doc界面输入下面的命令: cd D:\cocos2d-x-2.1.4\cocos2d-x-2.1.4\tools\project-cre ...

  6. Android基础知识回顾

  7. Guava库

    Guava是一个非常棒的库,它就是Java标准库"所缺失的那部分",是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, ...

  8. JSP和servlet结合案例

    [使用JSP技术实现猜数字游戏] 设计一个web app,有一个随机数字,给5次机会让客户猜测这个数字: 1)如果客户猜的数字比产生的数字值大,则提示"可惜,大了点". 2)如果客 ...

  9. 显示、隐藏 PowerShell

    以下是一个快速实现该需求的 module.只要将以下代码复制粘贴到 Documents\WindowsPowerShell\Packages\PowerShell\PowerShell.psm1 即可 ...

  10. MVC传递Model之TempData、ViewData、ViewBag差别及用途

    MVC使用过程中常常会用到TempData.ViewData.ViewBag三种方式,这三种什么差别呢? TempData:默认存储于Session中,可通过继承ITempDataProvider接口 ...