class MyData//存储行数据
{
public List<string> RowData { get; set; }
} static void Main(string[] args)
{ Application app=new ApplicationClass();
app.DisplayAlerts = false;
var path = @"C:\Users\Administrator\Desktop\JTWC台风季1979-2010.xls";//读取数据的excel
var path2=@"C:\Users\Administrator\Desktop\JTWC.xlsx";//存储数据的excel
var workbook=app.Workbooks.Open(path, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//打开指定位置的excel文件
Worksheet sheet=(Worksheet)workbook.Sheets[];//获取第一个table
var resultWorkBook= app.Workbooks.Open(path2);
var resultSheet =(Worksheet) resultWorkBook.Sheets[]; //
var resultData=new List<MyData>(); string numberAndNameStr = string.Empty;
for (int i = ; i < ; i++)
{
var number = ((Range) sheet.Cells[i, ]).Text.ToString();
var name = ((Range) sheet.Cells[i, ]).Text.ToString();
var tempStr = number + name;
if (tempStr != numberAndNameStr)//根据每一行的前两个cell的组合,判断这一行数据是否属于同一个Typhoon(这是一个具体问题)
{
var str = new List<string>
{
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString(),
((Range) sheet.Cells[i, ]).Text.ToString() };
var data = new MyData() {RowData = str};
resultData.Add(data);
//写入excel数据
numberAndNameStr = tempStr;
}
}
int row = ;
foreach (MyData myData in resultData)//循环每一行数据
{
for (int j = ; j < myData.RowData.Count; j++)//循环一行数据的所有cell
{
resultSheet.Cells[row, j + ] = myData.RowData[j];
}
row++;
} app.AlertBeforeOverwriting = false; //屏蔽掉系统跳出的Alert
//workbook.Save();
resultWorkBook.SaveAs(path2, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//用save方法会保存失败 app.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);//释放资源
Console.WriteLine("Over");
}

c#excel的操作例子的更多相关文章

  1. VS2010 MFC对Excel的操作

    这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...

  2. C# 几十万级数据导出Excel,及Excel各种操作

    先上导出代码 /// <summary> /// 导出速度最快 /// </summary> /// <param name="list">&l ...

  3. 利用NPOI组件产Excel完整操作

    最终还是要使用NPOi了.刚开始做的是用com组件,发现如果本机不按照excel就不能使用,后来把其中一支改为了用Itextsharp产生pdf,但是还有几支批次要产生Excel,只能改用NPOI了. ...

  4. POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】

    实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读 ...

  5. NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

    NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...

  6. NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

    在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...

  7. NPOI对Excel的操作(Sheet转DataTable、List<T>)

    通过NPOI对Excel进行操作,这里主要是读取的操作.封装到ExcelHelper操作类中. 1 using System.Collections.Generic; 2 using NPOI.HSS ...

  8. php的Excel相关操作

    1.需求 把数据库的数据输出excel格式 2.解决方案 利用phpexcel中的examples的01和07,对excel文件的读写 3.操作流程 a.https://github.com/PHPO ...

  9. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

随机推荐

  1. 【转】 详解Kafka生产者Producer配置

    粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码:   -----------------------------------------    详解Kafka生产者Produce ...

  2. asp.net core 笔记

     dnvm use 1.0.0-rc1-final -r clr    切换版本

  3. css外边距合并和z-index的问题

    参考这篇文章, 将外边距的 折叠 参考这篇文章, 将bfc的生成, bfc的应用 参考这篇文章 position: absolute的元素, 仍然具有内填充padding和border边框属性样式, ...

  4. linuxMint設置窗口最大最小化

    linuxMint下面用键盘快速让窗口最大化和最小化

  5. Linux服务器管理: 系统的进程管理ps命令

    源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [root@localhostA1 opt]# wget http://archive ...

  6. PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码

    做一个内网根据MAC地址自动登录的应用,在WINDOW 2003可以正常使用,函数如下   复制代码 代码如下: function ce_getmac() { if(PHP_OS == 'WINNT' ...

  7. 欧几里得证明$\sqrt{2}$是无理数

    选自<费马大定理:一个困惑了世间智者358年的谜>,有少许改动. 原译者:薛密 \(\sqrt{2}\)是无理数,即不能写成一个分数.欧几里得以反证法证明此结论.第一步是假定相反的事实是真 ...

  8. jquery动态改变my97日期格式

    $('#qsrq').unbind('focus'); $('#zzrq').unbind('focus'); $('#qsrq').bind('focus', function () { Wdate ...

  9. Stm32 debug停留在"BKPT 0xAB"或者"SWI 0xAB"的解决办法。

    一..背景: 曾经在工作中接触过STM32一段时间,但没有深入的去学习,只是用前辈搭建好的模型来实现一些功能罢了,俗话说的好,大树底下好乘凉,开发确实轻松了,可是不深究点,又觉着心里不踏实,然而也一直 ...

  10. 08OC之Foundation框架

    1.Foundation框架简述 在前面,我们创建一个类的时候,都会选择Cocoa Class.到底Cocoa Class是什么东西呢? Cocoa 不是一门编程语言,因为它可以运行在多种编程语言上, ...