MyXls for .Net1.1写Excel文件操作类

MyXls是一个Excel输出类,纯C#开发。使用它可以不经Excel Com即可输出Excel文件。拥有输出速度快,格式兼容的特点,推荐需要写Excel文件的可优先考虑。MyXls的官方网站是myxls.in2bits.org,目前最新版本是0.6.3,最新版本支持for Silverlight 2.0和for .NET 2.0,但不支持1.1。1.1的最高版本是0.5.2,下载地址:http://sourceforge.net/projects/myxls/files/MyXls/v0.5.2/。下面的操作类由MyXls for .NET2.0的改造而成,测试成功。

using System;
using System.Data;
using org.in2bits.MyXls;

namespace Guaik.IO
{
	/// <summary>
	/// DL_Excel 的摘要说明。
	/// </summary>
	public class MyXlsExcel
	{
		/// <summary>
		/// 把DataSet的值输入到Excel中
		/// </summary>
		/// <param name="ds">数据源</param>
		/// <param name="savePath">保存路径</param>
		/// <returns>输入的Excel文件路径</returns>
		public static void funcWriteExcel(DataSet ds, string savePath)
		{
			funcWriteExcel(ds, savePath, null, null);
		}

		/// <summary>
		/// 把DataSet的值输入到Excel中
		/// </summary>
		/// <param name="ds">数据源</param>
		/// <param name="savePath">保存路径</param>
		/// <returns>输入的Excel文件路径</returns>
		public static void funcWriteExcel(DataSet ds, string savePath, string[] tableNames, string[] headText)
		{
			try
			{
				XlsDocument xls = new XlsDocument();

				int rowIndex = 1;
				int colIndex = 0;
				int tabIndex = 0;
				foreach (DataTable dt in ds.Tables)
				{
					Worksheet sheet = xls.Workbook.Worksheets.AddNamed(tableNames != null && tableNames.Length > tabIndex ? tableNames[tabIndex++] : dt.TableName);//状态栏标题名称
					Cells cells = sheet.Cells;
					tabIndex++;

					//设置标题
					int headIndex = 0;
					foreach (DataColumn col in dt.Columns)
					{
						colIndex++;
						cells.AddValueCell(1, colIndex, (headText != null && headText.Length > headIndex ? headText[headIndex++] : col.ColumnName));
					}

					foreach (DataRow row in dt.Rows)
					{
						rowIndex++;
						colIndex = 0;
						foreach (DataColumn col in dt.Columns)
						{
							colIndex++;
							Cell cell = cells.AddValueCell(rowIndex, colIndex, row[col.ColumnName].ToString());
							//cell.UseNumber = true;
						}
					}
				}
				string dir = System.IO.Path.GetDirectoryName(savePath);
				if (!System.IO.Directory.Exists(dir))
				{
					System.IO.Directory.CreateDirectory(dir);
				}
				xls.FileName = System.IO.Path.GetFileName(savePath);
				xls.Save(dir, true);
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
	}
}

Tag标签: Excel
发表于 2010-01-27 12:07:51 收藏 所属分类: C# 网摘收藏
相关文章: