zoukankan      html  css  js  c++  java
  • Excel表复制、取消工作表保护、解除冻结操作

    最近处理Farpoint保存下来的Excel时,发现表格式有各种问题,下面是修改Excel格式操作到内容,做下笔记 :)

    /// <summary>
    /// Excel表相关操作
    /// </summary>
    /// <param name="firstpath">第一个Excel表路径</param>
    /// <param name="secondpath">第二个Excel表路径</param>
    private void ExcelOperation(string firstpath, string secondpath)
    {
        try
        {
            Microsoft.Office.Interop.Excel.Application App = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook fWorkbook = App.Workbooks.Open(firstpath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            Microsoft.Office.Interop.Excel.Workbook sWorkbook = App.Workbooks.Open(secondpath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            App.DisplayAlerts = false;  //屏蔽操作提示
            try
            {
                ((Microsoft.Office.Interop.Excel.Worksheet)sWorkbook.Sheets[1]).Delete();  //删除第二个表第一个Sheet
                sWorkbook.Save();

                Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)fWorkbook.Sheets[1];  //获取第一个表第一个Sheet

                sheet.Unprotect(Type.Missing);   //取消工作表保护

                Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)sheet.Rows[1, Type.Missing];  //获取第一行
                sheet.Activate();
                App.ActiveWindow.FreezePanes = false;  //解除冻结
                App.ActiveWindow.SplitColumn = 0;
                App.ActiveWindow.SplitRow = 0;

                range.Interior.ColorIndex = 0;    //设置第一行为白色
                range.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlDown);     //删除第一行

                sheet.Copy(sWorkbook.Sheets[1], Type.Missing);  //复制到第二个表中
                sWorkbook.Save();

            }
            catch (Exception ex)
            {
            }
            finally
            {
                fWorkbook.Close(false, firstpath, null);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(fWorkbook);
                fWorkbook = null;

                sWorkbook.Close(false, secondpath, null);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sWorkbook);
                sWorkbook = null;

                App.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(App);
            }
        }
        catch (Exception ex)
        {

        }
    }

  • 相关阅读:
    Leetcode 92. Reverse Linked List II
    Leetcode 206. Reverse Linked List
    Leetcode 763. Partition Labels
    Leetcode 746. Min Cost Climbing Stairs
    Leetcode 759. Employee Free Time
    Leetcode 763. Partition Labels
    搭建数据仓库第09篇:物理建模
    Python进阶篇:Socket多线程
    Python进阶篇:文件系统的操作
    搭建数据仓库第08篇:逻辑建模–5–维度建模核心之一致性维度2
  • 原文地址:https://www.cnblogs.com/Anlycp/p/1947485.html
Copyright © 2011-2022 走看看