UserSchema

using System; using System.Data; using System.Linq; using Excel = Microsoft.Office.Interop.Excel; // 添加引用 -> .NET -> Microsoft.Office.Interop.Excel(2003->11.0, 2007->12.0) public static class UserSchema { #region DataTable private static DataTable dataTable; static UserSchema() { dataTable = new DataTable("User"); dataTable.Locale = System.Globalization.CultureInfo.InvariantCulture; string[] cn = { "UserName", "UserEmail", "Content" }; string[] tn = { "用户名", "电子邮件", "内容" }; foreach (int index in Enumerable.Range(0, 3)) { dataTable.Columns.Add(cn[index], typeof(string)).Caption = tn[index]; } dataTable.Columns.Add("SendTime", typeof(DateTime)).Caption = "时间"; dataTable.Constraints.Add("Name", dataTable.Columns["UserName"], true); } public static DataTable UserTable { get { return dataTable; } set { dataTable = value; } } #endregion #region PrintToExcel public static void PrintToExcel(this DataTable dataTable, string caption) { Excel.Application newExcel = new Excel.Application(); try { Excel.Workbook newBook = newExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet newSheet = newBook.ActiveSheet as Excel.Worksheet; newExcel.Visible = true; newBook.Password = "jinzhexian"; newSheet.Name = caption; int column = dataTable.Columns.Count; Excel.Range newRange = newSheet.get_Range("B2", Type.Missing).get_Resize(2, column); newRange.MergeCells = true; // 合并单元格。 newRange.Font.Size = 16; newRange.Value2 = caption; newRange = newRange.get_Offset(1, 0).get_Resize(dataTable.Rows.Count + 1, column); var query = dataTable.Columns.Cast ().Select(sm => sm.Caption as object); query = query.Concat(dataTable.AsEnumerable().SelectMany(sm => sm.ItemArray)); column = -1; foreach (Excel.Range item in newRange.Cells) { item.Value2 = string.Format("'{0}", query.ElementAt(++column)); } newRange.EntireColumn.AutoFit(); // 自动调整列宽。 newRange.EntireColumn.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; // 水平居中。 newRange.Borders.LineStyle = Excel.XlLineStyle.xlDouble; // 设置外边框样式。 (newRange[2, 0] as Excel.Range).Select(); newExcel.SendKeys("%WFF", true); // 冻结拆分窗格 Microsoft Office 2003(%WF), 2007(%WFF)。 } catch { newExcel.Quit(); } finally { newExcel = null; GC.Collect(); } } #endregion }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值