• c#excel的操作例子


     1 class MyData//存储行数据
     2 {
     3 public List<string> RowData { get; set; } 
     4 }
     5 
     6 static void Main(string[] args)
     7 {
     8 
     9 Application app=new ApplicationClass();
    10 app.DisplayAlerts = false;
    11 var path = @"C:UsersAdministratorDesktopJTWC台风季1979-2010.xls";//读取数据的excel
    12 var path2=@"C:UsersAdministratorDesktopJTWC.xlsx";//存储数据的excel
    13 var workbook=app.Workbooks.Open(path, Missing.Value, Missing.Value, Missing.Value, Missing.Value
    14 , Missing.Value, Missing.Value, Missing.Value, Missing.Value
    15 , Missing.Value, Missing.Value, Missing.Value, Missing.Value);//打开指定位置的excel文件
    16 Worksheet sheet=(Worksheet)workbook.Sheets[1];//获取第一个table
    17 var resultWorkBook= app.Workbooks.Open(path2);
    18 var resultSheet =(Worksheet) resultWorkBook.Sheets[1];
    19 
    20 //
    21 var resultData=new List<MyData>();
    22 
    23 string numberAndNameStr = string.Empty;
    24 for (int i = 1; i < 31039; i++)
    25 {
    26 var number = ((Range) sheet.Cells[i, 1]).Text.ToString();
    27 var name = ((Range) sheet.Cells[i, 2]).Text.ToString();
    28 var tempStr = number + name;
    29 if (tempStr != numberAndNameStr)//根据每一行的前两个cell的组合,判断这一行数据是否属于同一个Typhoon(这是一个具体问题)
    30 {
    31 var str = new List<string>
    32 {
    33 ((Range) sheet.Cells[i, 1]).Text.ToString(),
    34 ((Range) sheet.Cells[i, 2]).Text.ToString(),
    35 ((Range) sheet.Cells[i, 3]).Text.ToString(),
    36 ((Range) sheet.Cells[i, 4]).Text.ToString(),
    37 ((Range) sheet.Cells[i, 5]).Text.ToString(),
    38 ((Range) sheet.Cells[i, 6]).Text.ToString(),
    39 ((Range) sheet.Cells[i, 7]).Text.ToString(),
    40 ((Range) sheet.Cells[i, 8]).Text.ToString()
    41 
    42 };
    43 var data = new MyData() {RowData = str};
    44 resultData.Add(data);
    45 //写入excel数据
    46 numberAndNameStr = tempStr;
    47 }
    48 }
    49 int row = 1;
    50 foreach (MyData myData in resultData)//循环每一行数据
    51 {
    52 for (int j = 0; j < myData.RowData.Count; j++)//循环一行数据的所有cell
    53 {
    54 resultSheet.Cells[row, j + 1] = myData.RowData[j];
    55 }
    56 row++;
    57 }
    58 
    59 app.AlertBeforeOverwriting = false; //屏蔽掉系统跳出的Alert
    60 //workbook.Save();
    61 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方法会保存失败
    62 
    63 app.Quit();
    64 System.Runtime.InteropServices.Marshal.ReleaseComObject(app);//释放资源
    65 Console.WriteLine("Over");
    66 }
    View Code
    Do something useful!
  • 相关阅读:
    网上邻居无法打开的问题 客户端无法连接打印机问题
    今天一天下午到晚上都在研究如何刷手机,要是被领导知道我帮同学在刷手机系统,非开除我不可。还是贴出来,以后少走弯路吧
    “屏幕保护程序”没有出现“在恢复时使用密码保护”的解决方法
    NOD 32客户端安装时出现的问题
    [模板]二叉树的前、中、后序遍历
    [算法]浅谈求n范围以内的质数(素数)
    [模板]二叉搜索树
    [OI]Noip 2018 题解&总结(普及)
    Centos7.2安装git(源码安装)
    Centos7.2安装maven
  • 原文地址:https://www.cnblogs.com/foreveryt/p/4014337.html
Copyright © 2020-2023  润新知