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. Android Studio-设置放大代码编辑区

    原有的快捷键是ctrl+shift+F12,现在我修改成了Ctrl+M.

  2. [IOC]Unity使用

    Unity是什么? unity是patterns&practices团队开发的一个轻量级.可扩展的依赖注入容器. Unity特性 1.它提供了创建(或者装配)对象实例的机制,而这些对象实例可能 ...

  3. acdream1233 Royal Federation (构造?)

    http://acdream.info/problem?pid=1233 Andrew Stankevich's Contest (3) ASC 3 Royal Federation Special ...

  4. jQuery 学习之路(4):事件

    一.文档载入事件 二.事件绑定 三.事件对象 四.浏览器事件 五.表单事件 六.键盘事件 七.鼠标事件

  5. 使用SandCastle创建.Net帮助文档

    使用SandCastle创建.Net帮助文档 引用自:http://www.cnblogs.com/DotNetNuke/archive/2009/04/23/1441899.html Sandcas ...

  6. WCF--提示:异常消息为“传入消息的消息格式不应为“Raw”。此操作的消息格式应为 'Xml', 'Json'。

    Ajax调用WCF服务... 本来用 // $.getJSON("http://localhost:16625/Service1.svc/Article_GetInfo", { } ...

  7. jquery 隐藏表单元素

    1.html <label for="lbl" >电压等级:</label> <input class="easyui-combobox&q ...

  8. LUXURY15

    A - Guess Your Way Out! Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  9. hdu.5212.Code(莫比乌斯反演 && 埃氏筛)

    Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  10. scanf函数与输入缓冲区

    本文链接:http://www.cnblogs.com/xxNote/p/4008668.html 今天看书的时候遇到scanf函数与缓冲区的问题,产生了一些猜想即:应该有一个指针来记录缓冲区中读取到 ...