使用Aspose.Cells读取Excel
最新更新请访问: http://denghejun.github.io
Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类:
以下是Aspose.Cells下载地址:http://pan.baidu.com/s/1sjQ5XX7
/// <summary>
/// Excel操作类(引用程序集Aspose.Cells.dll)
/// </summary>
public class ExcelOperation
{
/// <summary>
/// 读取指定路径的Excel文件为DataTable
/// </summary>
/// <param name="fileName">文件全路径</param>
/// <param name="firstRow">要开始读取的第一行在Excel中的行索引(默认会以此行各列数据作为DataTable的列名)</param>
/// <param name="firstColumn">要开始读取的第一列在Excel中的列索引</param>
/// <param name="invalidEndRowNumber">文件尾部无效行数目(该部分所有行数据将不会被读取)</param>
/// <returns>返回DataTable</returns>
public static DataTable ReadExcel(string fileName, int firstRow, int firstColumn, int invalidEndRowNumber)
{
Cells cells;
Workbook workbook = new Workbook(fileName);
cells = workbook.Worksheets[].Cells;
if (cells == null)
{
return null;
} DataTable dt = cells.ExportDataTable(firstRow, firstColumn, cells.MaxDataRow - invalidEndRowNumber, cells.MaxDataColumn);
string realColumnName = string.Empty;
for (int i = ; i < dt.Columns.Count; i++)
{
if (dt.Rows[][i] == null || dt.Rows[][i].ToString().Trim() == string.Empty)
{
realColumnName += dt.Rows[][i];
dt.Columns[i].ColumnName = realColumnName.Replace(" ", string.Empty);
realColumnName = realColumnName.TrimEnd(dt.Rows[][i].ToString().ToCharArray()).Replace(" ", string.Empty);
}
else
{
realColumnName = dt.Rows[][i].ToString();
if ((i + ) <= cells.MaxColumn - && (dt.Rows[][i + ] == null || dt.Rows[][i + ].ToString().Trim() == string.Empty))
{
realColumnName += dt.Rows[][i].ToString();
dt.Columns[i].ColumnName = realColumnName.Replace(" ", string.Empty);
realColumnName = realColumnName.Remove(realColumnName.Length - dt.Rows[][i].ToString().Length - , dt.Rows[][i].ToString().Length).Replace(" ", string.Empty);
}
else
{
dt.Columns[i].ColumnName = realColumnName.Replace(" ", string.Empty);
}
}
} return dt;
} /// <summary>
/// 将DataTable导出指定路径的Excel文件
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="tableName">Excel文件的表头内容</param>
/// <param name="path">文件保存的全路径</param>
public static void ExportExcel(DataTable dt, string headerText, string path)
{
Workbook workbook = new Workbook(); //工作簿
Worksheet sheet = workbook.Worksheets[]; //工作表
Cells cells = sheet.Cells;//单元格 //为标题设置样式
Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式
styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中
styleTitle.Font.Name = "宋体";//文字字体
styleTitle.Font.Size = ;//文字大小
styleTitle.Font.IsBold = true;//粗体 //样式2
Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式
style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style2.Font.Name = "宋体";//文字字体
style2.Font.Size = ;//文字大小
style2.Font.IsBold = true;//粗体
style2.IsTextWrapped = true;//单元格内容自动换行
style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //样式3
Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式
style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style3.Font.Name = "宋体";//文字字体
style3.Font.Size = ;//文字大小
style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; int Colnum = dt.Columns.Count;//表格列数
int Rownum = dt.Rows.Count;//表格行数 //生成行1 标题行
cells.Merge(, , , Colnum);//合并单元格
cells[, ].PutValue(headerText);//填写内容
cells[, ].SetStyle(styleTitle);
cells.SetRowHeight(, ); //生成行2 列名行
for (int i = ; i < Colnum; i++)
{
cells[, i].PutValue(dt.Columns[i].ColumnName);
cells[, i].SetStyle(style2);
cells.SetRowHeight(, );
} //生成数据行
for (int i = ; i < Rownum; i++)
{
for (int k = ; k < Colnum; k++)
{
cells[ + i, k].PutValue(dt.Rows[i][k].ToString());
cells[ + i, k].SetStyle(style3);
}
cells.SetRowHeight( + i, );
} workbook.Save(path);
}
}
使用Aspose.Cells读取Excel的更多相关文章
- 怎么使用Aspose.Cells读取excel 转化为Datatable
说明:vs2012 asp.net mvc4 c# 使用Aspose.Cells 读取Excel 转化为Datatable 1.HTML前端代码 <%@ Page Language=" ...
- Aspose.cells 读取Excel表中的图片问题
一.说明 本文主要是讲解,怎么使用aspose.cells读取Excel表中的图片,并把图片转换成流或是image对象. 二.开发环境说明 开发工具vs2012,c#语言, 三.Aspose.cell ...
- 【转】Aspose.Cells读取excel文件
Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的 ...
- Aspose.Cells 读取Excel数据到DataTable
C#代码: Workbook workbook = new Workbook(); workbook.Open(excelfile); Cells cells = workbook.Worksheet ...
- Aspose.Cells导出Excel(1)
利用Aspose.Cells导出excel 注意的问题 1.DataTable的处理 2.进行编码,便于中文名文件下载 3.别忘了Aspose.Cells.dll(可以自己在网上搜索) public ...
- 报表中的Excel操作之Aspose.Cells(Excel模板)
原文:报表中的Excel操作之Aspose.Cells(Excel模板) 本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导 ...
- 怎么利用Aspose.Cells 获取excel 数据表中sheet的名称
说明:开发环境 vs2012 asp.net mvc4 c# 利用Aspose.Cells 获取Excel数据表的sheet的名称,并把获取的名称赋值给easyUI 的combobox 1.运行效果 ...
- Aspose.Cells 读取受保护的Excel
最近遇到一个需求,要能够读取受密码保护的Excel内容,之前都是直接读取Excel中的数据,不需要做任何其他的处理. 当Excel双击的时候,需要输入密码,在使用Aspose.Cells 组件读取 ...
- EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类
大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...
随机推荐
- canvas星星炫耀
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 登陆Oracle,报oracle initializationg or shutdown in progress 错误提示
前两天,登陆Oracle,发现登陆不上去了,报”oracle initializationg or shutdown in progress 错误提示” 错误. 然后就想着怎么去解决,首先自己到win ...
- js打印对象数组信息
function writeObj(obj){ var description = ""; for(var i in obj){ var property=obj[i]; desc ...
- 用.net 发送邮件
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...
- 解决ScrollView 嵌套 GridView 单行显示问题
简单重写GridView package com.hh.beauter.my_ui; import android.content.Context; import android.util.Attri ...
- 【CentOS】Linux日常管理
/////////////////////////目录///////////////////////////////////////// 一.日常监控指标相关 1.监控系统状态命令 2.查看系统进程 ...
- 【iOS [[UIApplication sharedApplication] delegate]】运用
之前想要拿到app的窗口,我们通常的写法是: [UIApplication sharedApplication].keyWindow 这种写法之前一直也觉得是正确的,没什么问题,而且网上大多数的博客或 ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
- LeetCode 104. Maximum Depth of Binary Tree
Problem: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along ...
- WebRTC通信流程
WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能.而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构 ...