using System; 

using System.Collections; 

using System.Configuration; 

using System.Data; 

using System.Web; 

using System.Web.Security; 

using System.Web.UI; 

using System.Web.UI.HtmlControls; 

using System.Web.UI.WebControls; 

using System.Web.UI.WebControls.WebParts; 

using System.Data.OleDb; 

using Excel; 

using System.Reflection; 

using System.Runtime.InteropServices;// For COMException 

public partial class readandwrite_excel : System.Web.UI.Page 

{ 

    protected void Page_Load(object sender, EventArgs e) 

    { 

        ReadExcel(); 

        Response.Write("下面是写入XLS文件"); 

        WriteXls(); 

        WriteAndAutoSaveXls(); 

    } 

    /**//// <summary> 

    /// 读取一个XLSW文件并显示出来 

    /// </summary> 

    public void ReadExcel() 

    { 

       string oleconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\WebCHat\\excel\\test.xls;Extended Properties='Excel 8.0;HDR=NO'"; 

           //  HDR=NO 即无字段 

           //   HDR=yes 即有字段,一般默认excel表中第1行的列标题为字段名,如姓名、年龄等 

        //如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(F1 表示第一个字段,F2 表示第二个字段,依此类推); 

       // IMEX 表示是否强制转换为文本 

       //   Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。 

        //如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时), 

        //驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。 

        //(如果各种数据类型的数量相当,则采用数值类型。) 

        //Excel 工作表中大部分单元格格式设置选项不会影响此数据类型判断。 

        //可以通过指定导入模式来修改 Excel 驱动程序的此行为。 

        //若要指定导入模式,请在“属性”窗口中将 IMEX=1 添加到 Excel 

        //连接管理器的连接字符串内的扩展属性值中。 

        OleDbConnection conn = new OleDbConnection(oleconn); 

        conn.Open(); 

        string str_sql = "select * from [Sheet1$]"; 

        OleDbDataAdapter oda = new OleDbDataAdapter(str_sql, conn); 

        DataSet ds = new DataSet(); 

        oda.Fill(ds); 

        conn.Close(); 

         GridView1.DataSource = ds; 

        GridView1.DataBind(); 

    } 

    /**//// <summary> 

    /// 将一些数据写入到一个XLS文件中 

    /// </summary> 

    public void WriteXls() 

    { 

        Excel.Application excel = new Excel.Application(); 

        excel.Workbooks.Add(true); 

        excel.Cells[1, 1] = "1,1"; 

        excel.Cells[1, 2] = "1,2"; 

        excel.Cells[1, 3] = "1,3"; 

        excel.Cells[2, 1] = "2,1"; 

        excel.Cells[2, 2] = "2,2"; 

        excel.Cells[2, 3] = "2,3"; 

        excel.Visible = true; 

    } 

     /**//// <summary> 

    /// 实现自动保存 

    /// </summary> 

    ///参考 http://hi.baidu.com/happybadbaby/blog/item/c396ae231ef5f4549822ed58.html 

    public void WriteAndAutoSaveXls() 

    { 

        Excel.Application excel = new Excel.Application(); 

        Range range = null;// 创建一个空的单元格对象 

        Worksheet sheet = null; 

       try 

       { 

           // 注释掉的语句是:从磁盘指定位置打开一个 Excel 文件 

         //excel.Workbooks.Open("demo.xls", Missing.Value, Missing.Value,  

        //Missing.Value,Missing.Value, Missing.Value, Missing.Value,  

        //Missing.Value, Missing.Value, Missing.Value, Missing.Value,  

        //Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

                if(excel==null) 

                { 

                    Response.Write("不能创建excle文件"); 

                } 

                 excel.Visible = false;// 不显示 Excel 文件,如果为 true 则显示 Excel 文件 

                 excel.Workbooks.Add(Missing.Value);// 添加工作簿 

                     //使用 Missing 类的此实例来表示缺少的值,例如,当您调用具有默认参数值的方法时。 

              sheet = (Worksheet)excel.ActiveSheet;// 获取当前工作表 

                 sheet.get_Range(sheet.Cells[29,2],sheet.Cells[29,2]).Orientation=Excel.XlOrientation.xlVertical;//字体竖直居中在单元格内 

                 range = sheet.get_Range("A1", Missing.Value);// 获取单个单元格 

                 range.RowHeight = 20;           // 设置行高 

                 range.ColumnWidth = 20;         // 设置列宽 

                 range.Borders.LineStyle = 1;    // 设置单元格边框 

                 range.Font.Bold = true;         // 加粗字体 

                 range.Font.Size = 20;           // 设置字体大小 

                 range.Font.ColorIndex = 5;      // 设置字体颜色 

                 range.Interior.ColorIndex = 6;  // 设置单元格背景色 

                 range.HorizontalAlignment = XlHAlign.xlHAlignCenter;// 设置单元格水平居中 

                 range.VerticalAlignment = XlVAlign.xlVAlignCenter;// 设置单元格垂直居中 

                 range.Value2 = "设置行高和列宽";// 设置单元格的值 

                 range = sheet.get_Range("B2", "D4");// 获取多个单元格 

                 range.Merge(Missing.Value);         // 合并单元格 

                 range.Columns.AutoFit();            // 设置列宽为自动适应 

                 range.NumberFormatLocal = "#,##0.00";// 设置单元格格式为货币格式 

            // 设置单元格左边框加粗 

                 range.Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick; 

           // 设置单元格右边框加粗 

                 range.Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick; 

                 range.Value2 = "合并单元格"; 

                // 页面设置 

                 sheet.PageSetup.PaperSize = XlPaperSize.xlPaperA4;          // 设置页面大小为A4 

                 sheet.PageSetup.Orientation = XlPageOrientation.xlPortrait; // 设置垂直版面 

                 sheet.PageSetup.HeaderMargin = 0.0;                         // 设置页眉边距 

                 sheet.PageSetup.FooterMargin = 0.0;                         // 设置页脚边距 

                 sheet.PageSetup.LeftMargin = excel.InchesToPoints(0.354330708661417); // 设置左边距 

                 sheet.PageSetup.RightMargin = excel.InchesToPoints(0.354330708661417);// 设置右边距 

                 sheet.PageSetup.TopMargin = excel.InchesToPoints(0.393700787401575);  // 设置上边距 

                 sheet.PageSetup.BottomMargin = excel.InchesToPoints(0.393700787401575);// 设置下边距 

                 sheet.PageSetup.CenterHorizontally = true;                  // 设置水平居中 

                // 打印文件 

                 sheet.PrintOut(Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

                // 保存文件到程序运行目录下 

                 sheet.SaveAs("e:\\WebChat\\excel\\demo.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

                 excel.ActiveWorkbook.Close(false, null, null); // 关闭 Excel 文件且不保存 

             } 

            catch (Exception ex) 

         { 

             Response.Write(ex.Message); 

             } 

            finally 

           { 

                 excel.Quit(); // 退出 Excel 

                 System.Runtime.InteropServices.Marshal.ReleaseComObject(range); 

                 System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet); 

                 System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); 

                 GC.Collect(); 

             } 

         } 

     }

  

C#读写EXCEL的更多相关文章

  1. MFC vs2012 Office2013 读写excel文件

    近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2 ...

  2. C# 使用 NPOI 库读写 Excel 文件(转载)

    NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼 容xls 和 xlsx.官网提供了一份Examples,给出了 ...

  3. Python3.4如何读写Excel

    在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel. 首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel 针对 03版 ...

  4. 用Python读写Excel文件(转)

    原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...

  5. 使用NPOI读写Excel、Word

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  6. 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍

    在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...

  7. 【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  8. 【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  9. 【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  10. 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

随机推荐

  1. maven之一——多模块项目构建

    参考这个帖子: http://www.cnblogs.com/xdp-gacl/p/4242221.html

  2. Win7\xp添加虚拟网Microsoft Loopback Adapter

    安装Microsoft Loopback Adapter 1 依次找到 打开“开始菜单”---“控制面板”---“添加硬件”的菜单选项如下图所示. 步骤阅读 2 如果没有“添加硬件”当然你也可以直接, ...

  3. 在HTML5规范中div中读取预存的data-[key]值

    HTML 代码: <div id="div_test" data-test="this is test" ></div> jQuery ...

  4. 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。

    package b; public interface ZuoBiao { double zuobiao(); } package b; public class Point implements Z ...

  5. form 表单

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. linux下inotify的使用

    有时候我们需要检测某个目录下文件或者子目录的改动状况,如添加.删除.以及更新等,Linux系统上提供了inotify来完成这个功能.inotify是在版本2.6.13的内核中首次出现,现在的发行本应该 ...

  7. Ubuntu升级没有声音的解决方法

    自从安装U14.04LTS版本后,每次开机都会弹出update窗,以前因为网络速度慢没更新成功过,这回环境允许就尝试了下这个过程,很顺利,可更新后没声音了,找了N中方法来解决,像更改配置文件/etc/ ...

  8. CUBRID学习笔记 38 net调用java的函数过程

    首先要设置java_stored_procedure 为yes  该配置项在cubrid.conf中 书写并编译java代码 public class SpCubrid{      public st ...

  9. VirtualBox全屏切换

    用VirtualBox的时候,如果设置为全屏,想再切换回来,没有什么菜单,只有通过键盘的快捷键来操作,才可以恢复. 我常常忘掉,所以老是得去找,以后需要记住这几个按键的快捷键. 1.全屏与非全屏切换: ...

  10. LINQ之路 3:C# 3.0的语言功能(下)

    在LINQ介绍一篇中,我们已经看到了隐式类型变量var,扩展方法(Extension method)和Lambda表达式的身影.没错,他们正是LINQ技术的基石,是他们让LINQ的实现成为可能,并且简 ...