zoukankan      html  css  js  c++  java
  • .net 操作 excel

    1. 读取
          读取好像有几种方式,通过ADO.net, 通过Microsoft.Interop.Excel支持类库用调用COM读取,还有通过ZIP解压最终读取DOM(这个貌似蛮复杂)
    这里我用的ADO.NET只介绍这一个。
    读Excel到Table
    参数: StrExcelPath Excel文件的路径,strSheetName 要读取表的名称
    这里贴个读SheetName的代码,这个是调用Microsoft.Interop.Excel来读取

        Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open("Excel文件路径", 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true);
        Excel.Sheets sheets = theWorkbook.Worksheets;
        Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
        ExecName = worksheet.Name;
        theWorkbook.Close(null, null, null);//记得要关闭,否则程序关闭,Excel的进程还在
    2.创建新的excel文件

    Excel.ApplicationClass myExcel = new Excel.ApplicationClass();      //实例一个excel
    Excel._Workbook xBk;       //工作薄  相当于一个Excel文件                 
    Excel._Worksheet xSt;      //工作Sheet    一个文件里的表
    xBk = myExcel.Workbooks.Add(true);      //允许添加 sheet
    object missing = System.Reflection.Missing.Value;//空值
    myExcel.Sheets.Add(missing, missing, 1, Excel.XlSheetType.xlWorksheet);//添加sheet
    xSt = (Excel._Worksheet)xBk.ActiveSheet;//得到默认sheet
    xSt.Name = "新的表";      //这里设置表名
    xBk.SaveAs( “保存路径” , missing, missing,
        missing, missing, missing, Excel.XlSaveAsAccessMode.xlShared,
        missing, missing, missing, missing);      
    //保存文件
    myExcel.Quit(); //同样要记得关闭

    3.添加内容
    这里只说一般数据的添加,图表的就不介绍了, 在Excel的操作里一般是以表格和范围为单位,行或列是从1开始而不是从0开始
    先介绍一下格式设置,如下
    如设置第一行字体为红色:((Excel.Range)xSt.Rows[1, Type.Missing]).Font.Color = 0xFF0000;      //xSt 是上边代码的变量名,颜色值是用16进制RGB
    设置第二列为百分数的格式 ((Excel.Range)xSt.Columns[2, Type.Missing]).NumberFormat = "0.00%";
          备常用格式:文本:@ 日期:yyyy/mm/dd  数字:#,##0.00  货币:¥#,##0.00  百分比:0.00%
    上边两种为行选择和列选择,如果要选择第1行第2列到第1行第5列就用get_Range();
          xSt.get_Range(xSt.Cells[1,2],xSt.Cells[1,5])
    如果需要其它格式,如单元格背景,边框,字体样式 ,查下文档。不过大部分从点出来的方法名就能知道了
    再就是添加内容,直接写点代码参考。

    int rowIdx = 2//从第2行列始
    //这里dt 是DataTable数据源
    foreach( DataRow dr in dt.Rows )
    {
     
    int j = 1;      //从第1列开始
     myExcel.Cells[rowIdx, j++= dr["dt列名"].ToString();  
     myExcel.Cells[rowIdx, j
    ++= dr["dt列名"].ToString();  
     myExcel.Cells[rowIdx, j
    ++= dr["dt列名"].ToString();  
     myExcel.Cells[rowIdx, j
    ++= dr["dt列名"].ToString();  
     myExcel.Cells[rowIdx, j
    ++= dr["dt列名"].ToString();  
     myExcel.Cells[rowIdx, j
    ++= dr["dt列名"].ToString(); 
     
    //用公式的情况,显示A+B+C+D的结果
     myExcel.Cells[rowIdx, j++= string.Format("=SUM(A{0}:D{0})",rowIdx); 
     rowIdx
    ++;
    }

    写完了save一下 xBk.Save(),还是记得要关闭。

    贴点Delphi的代码参考
  • 相关阅读:
    use paramiko to connect remote server and execute command
    protect golang source code
    adjust jedi vim to python2 and python3
    install vim plugin local file offline
    add swap file if you only have 1G RAM
    datatables hyperlink in td
    django rest framework custom json format
    【JAVA基础】网络编程
    【JAVA基础】多线程
    【JAVA基础】String类的概述和使用
  • 原文地址:https://www.cnblogs.com/hanf/p/1585075.html
Copyright © 2011-2022 走看看