C#操作Excel文件~创建Excel文件

今天用了近一天的时间来完成和学习,和大家分享如下:

网上有用插件的方法,我是用COM组件

C#操作Excel文件:

1.在程序里创建Excel文件

2.在程序里对已有的Excel文件修改数据

前提:

using MSExcel = Microsoft.Office.Interop.Excel;

using System.Reflection;

using System.IO;

备注:第一个指令集会报错,需要添加引用COM下的Office和Excel

功能一:在程序里创建Excel文件

/// <summary>
        /// 创建一个EXCEL文档
        /// 如果检测到已有此名的该文档,覆盖
        /// </summary>
        static void CreateExcelFile()
        {
            object path = "E:\\VS项目路径\\测试生成EXCEL2\\MyText.xls";

           //检测指定的文件是否存在(需要using System.IO)
            if (File.Exists((string)path))
            {
                File.Delete((string)path);
            }

            MSExcel.Application appExcel;   //EXCEL应用程序变量
            MSExcel.Workbook excelDoc;      //EXCEL文档变量

            //初始化 vs2010用Application()
            appExcel = new MSExcel.ApplicationClass();   //无法嵌入互操作类型(引用的EXCEL中嵌入操作改为False)

           //由于使用COM库,因此有很多变量需要使用Nothing代替
            Object Nothing = Missing.Value;
            excelDoc = appExcel.Workbooks.Add(Nothing);

           //WdSaveFormat为EXCEL文档的格式保存
            object format = MSExcel.XlFileFormat.xlWorkbookNormal;

            //使用第一个工作表作为插入数据的工作表
            MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheets[1];

           //在指定地方赋值
            MSExcel.Range r = ws.get_Range("A1", "A1"); //获取第1行第1列单元格
            r.Value2 = "直径";                          //向第1行第1列单元格赋值  

            #region 尝试在其他格子内赋值
            //MSExcel.Range r2 = ws.get_Range("B1", "B1");
            //r2.Value2 = 6;      //向第1行第2列单元格赋值  

            //MSExcel.Range r3 = ws.get_Range("C1", "C1");
            //r3.Value2 = 7;

            //MSExcel.Range r4 = ws.get_Range("C"+"2","C2");
            //r4.Value2 = 8;
            //.....可以接着向更多的Excel单元格赋值...
            #endregion

           //赋多个值
           string zhijing = "B";
           int[] num = new int[6];
           for (int j = 0; j < 6; j++)
               num[j] = j+1;

            MSExcel.Range[] t = new MSExcel.Range[6];

            for (int i = 1; i < 5;i++ )
            {
                string temp = zhijing + num[i].ToString();
                t[i] = ws.get_Range(temp,temp);
                t[i].Value2 = i;
            }

            //将excelDoc文档对象的内容保存为XLSX文档
            excelDoc.SaveAs(path, Nothing, Nothing, Nothing, Nothing, Nothing, MSExcel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);
           //关闭excelDoc文档对象
           excelDoc.Close(Nothing, Nothing, Nothing);
           //关闭excelApp组件对象
           appExcel.Quit();

        }

备注:我的笔记本工作站是公司昨天新配的,因为这个在//将excelDoc文档对象的内容保存为XLSX文档这里报错未处理的COMException

详细描述问题:比如我将一根wrod文件移动到另一个文件夹,会弹出管理员权限……的

解决:在项目所在的硬盘右键-属性-安全-权限里给予权限

备注:在尝试在其他格子赋值的时候给自己普及了下Excel文件的知识,将格子所在位置的表示标出来了,横是行,纵是列,以英文+数字表示

备注:(A1,A1)的位置是test是第二个程序修改覆盖的,原为直径

备注:最后的结果就是上面的图片和下面的

时间: 2024-11-10 14:11:34

C#操作Excel文件~创建Excel文件的相关文章

创建应答文件之自定义部署Win7系统模版

在SCVMM和VDI中,可以通过创建Win7系统模版来批量部署,可以节省很多重复的操作.创建Windows系统模版,必须要经过Sysprep.exe这个工具来重新封装.我们新装一个Win7系统,使用Sysprep直接做成模版,那我们在这个Win7系统上所做的所有设置都会被还原,不能达到所有虚拟机保持同样个性化的设置.现在我们可以使用应答文件来保留模版机上所有设置,Sysprep之后仍然存在.本次实验我们使用Win7系统做示范,在这之前需要下载好适用于Win7的AIK工具和Win系统镜像. 下载链

oracle创建日志文件

创建日志文件的语法如下: alter database database_name add logfile[group group_number] (file_name[,file_name[,...]])[SIZE number][reuse]; 语法的说明如下; group group_number为日志文件指定组的编号 file_name为该组创建日志文件成员 size number指定日志文件成员的大小 reuse如果创建的日志文件成员已经存在,可以使用reuse关键字覆盖已经存在的文件

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world

一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 ? 二.实验环境 物理主机:win7 64bit, i5双核,8G内存 虚拟机:Vmware Workstation 10.0.2 虚拟主机: CentOs-5.11,内核2.6.18 ? 三.实验思路 在着手解决问题之前,我在网上查阅了一些资料,大多是关于模块的介绍.linux内核采用的是模块化编程,这样可以很容易的添加或

Java学习笔记之I/O流(读取压缩文件以及压缩文件)

1.读取压缩文件:ZipInputStream 借助ZipFile类的getInputStream方法得到压缩文件的指定项的内容,然后传递给InputStreamReader类的构造方法,返回给BufferedReader类实例化,从而使得指定项的内容输出到内存中. 2.压缩文件:ZipOutputStream 2.1 注意,zipOut.putNextEntry(entry);// 此方法会清空zip文件原来存在的内容,然后写入文件,并将流定位到条目数据的开始处,直到关闭ZipOutputSt

读取并创建excel文件(.xls)

第三方库,附件 缺点:该库只支持.xls文件的操作 1.读取excel文件 例子: try { /** * 后续考虑问题,比如Excel里面的图片以及其他数据类型的读取 **/ InputStream is = new FileInputStream(path); Workbook book = Workbook.getWorkbook(is); int num = book.getNumberOfSheets(); publishProgress("the num of sheets is &

Excel催化剂开源第4波-ClickOnce部署要点之导入数字证书及创建EXCEL信任文件夹

Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首次安装,比较波折,但相对于后续的自动更新的回报,笔者自我感觉还是很值得的.Clickonce部署过程中,要求导入数字证书和设置Excel共享路径这两个步骤,本篇开源代码主要讲述这个过程的自动化处理的代码实现,同样用的是Console程序. 为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,

jxl创建Excel文件java代码示例

记得要下载 并 导入 jxl.jar 包,免积分下载地址:http://download.csdn.net/detail/u010011052/7561041 package Test; import java.io.*; import jxl.*; import jxl.format.Colour; import jxl.write.*; public class JXLTest { private static WritableWorkbook book; private static Wr

C#操作Excel文件(读取Excel,写入Excel)

看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,如今共享大家,希望给大家可以给大家带了一定的帮助.另外我们还要注意一些简单的问题1.excel文件仅仅能存储65535行数据,假设你的数据大于65535行,那么就须要将excel切割存放了.2.关于乱码,这主要是字符设置问题. 1.载入Excel(读取excel内容)返回值是一个DataSet //载入Excel public static DataSet LoadDataFro