精华内容
下载资源
问答
  • excel链接隐藏工作表Hiding worksheets can be a simple way to protect data in Excel, or just a way reduce the clutter of a some tabs. Here are a couple very easy ways to hide and unhide worksheets and ...
    excel链接隐藏工作表

    excel链接隐藏工作表

    Hiding worksheets can be a simple way to protect data in Excel, or just a way reduce the clutter of a some tabs. Here are a couple very easy ways to hide and unhide worksheets and workbooks in Excel 2007 / 2010.

    隐藏工作表可能是保护Excel中数据的一种简单方法,或者只是一种减少某些选项卡混乱的方法。 这是在Excel 2007/2010中隐藏和取消隐藏工作表和工作簿的几种非常简单的方法。

    Hiding a Worksheet

    隐藏工作表

    Select the Worksheet you’d like to hide by clicking on the tab at the bottom. By holding down the Ctrl key while clicking you can select multiple tabs at one time.

    通过单击底部的选项卡,选择要隐藏的工作表。 通过在单击时按住Ctrl键,可以一次选择多个选项卡。

    sshot-2

    On the Home tab, click on Format, which can be found in the Cells group. Under Visibility,  select Hide & Unhide, then Hide Sheet.

    在“ 主页”选项卡上,单击“ 格式” ,可以在“ 单元格”组中找到它。 在“ 可见性”下 ,选择“ 隐藏和取消隐藏” ,然后选择 隐藏工作表”

    sshot-3

    You can also simply right-click on the tab, and select Hide.

    您也可以直接在标签上单击鼠标右键,然后选择“ 隐藏”

    sshot-11

    Your worksheet will no longer be visible, however, the data contained in the worksheet can still be referenced on other worksheets.

    您的工作表将不再可见,但是,该工作表中包含的数据仍然可以在其他工作表上引用。

    sshot-4

    Unhide a Worksheet

    取消隐藏工作表

    To unhide a worksheet, you just do the opposite. On the Home tab, click on Format in the Cells group and then under Visibility,  select Hide & Unhide, then Unhide Sheet.

    要取消隐藏工作表,只需执行相反的操作即可。 在“ 主页”选项卡上,单击“ 单元格”组中的“ 格式 ”,然后在“ 可见性”下,选择“ 隐藏和取消隐藏” ,然后选择“取消 隐藏工作表”。

    sshot-5

    Or, you can right-click on any visible tab, and select Unhide.

    或者,您可以右键单击任何可见的选项卡,然后选择取消隐藏。

    sshot-12

    In the Unhide pop up window, select the worksheet to unhide and click “OK.” Note: Although you can hide multiple sheets at once, you can only unhide one sheet at a time.

    在“ 取消隐藏”弹出窗口中,选择要取消隐藏的工作表,然后单击“确定”。 注意:尽管可以一次隐藏多张纸,但一次只能取消隐藏一张纸。

    sshot-6

    Very Hidden Mode

    非常隐藏模式

    While hidden mode is nice, it’s not exactly ultra-secure. If you’d like to pump the security up a notch, there is also Very Hidden mode. To access Very Hidden setting, we’ll have to use the built-in Visual Basic Editor by hitting the Alt + F11 keys.

    虽然隐藏模式很不错,但它并非完全安全。 如果您想提高安全性,还可以选择“ 非常隐蔽”模式。 要访问“非常隐藏”设置,我们必须通过按Alt + F11键使用内置的Visual Basic编辑器。

    Select the worksheet you wish to hide from the dropdown list under Properties or by single clicking the worksheet in the VBAProject window. Next, set the Visible property to  2 – xlSheetVeryHidden. Close out of the Visual Basic Editor when finished.

    从“属性”下的下拉列表中选择要隐藏的工作表,或在VBAProject窗口中单击工作表。 接下来,将Visible属性设置为2 – xlSheetVeryHidden。 完成后关闭Visual Basic编辑器。

    sshot-14

    When the Very Hidden attribute is set on a worksheet, Unhide Sheet is still unavailable from within the Format setting on the Home tab.

    在工作表上设置“非常隐藏”属性后,“ 主页”选项卡上的“ 格式”设置中仍无法使用“ 取消隐藏工作表”

    sshot-16

    To remove the Very Hidden attribute and display the worksheet again, go back into the Visual Basic Editor by hitting Alt + F11 again and setting the Visible property back to –1 – xlSheetVisible.  Close out of the Editor when finished.

    若要删除“非常隐藏”属性并再次显示工作表,请再次单击Alt + F11 ,然后将Visible属性设置回–1 – xlSheetVisible ,以返回到Visual Basic编辑器。 完成后关闭编辑器。

    sshot-15

    Hiding a Workbook

    隐藏工作簿

    To hide the entire Workbook, select the View tab, and then click the Hide button.

    若要隐藏整个工作簿,请选择“ 视图”选项卡,然后单击“ 隐藏”按钮。

    sshot-8

    You’ll see the Workbook has disappeared.

    您会看到工作簿已消失。

    sshot-9

    Unhide a Workbook

    取消隐藏工作簿

    Select the View tab and click Unhide…

    选择查看选项卡,然后单击取消隐藏…

    sshot-10

    … and your Workbook will be visible again.

    …,您的工作簿将再次可见。

    sshot-7

    Just a few simple ways to hide and unhide your Excel worksheets and workbooks.

    仅有几种简单的方法可以隐藏和取消隐藏Excel工作表和工作簿。

    翻译自: https://www.howtogeek.com/howto/14160/hide-and-unhide-worksheets-and-workbooks-in-excel-2007-2010/

    excel链接隐藏工作表

    展开全文
  • Java Excel图片

    万次阅读 热门讨论 2020-02-25 22:59:15
    看到一篇好用的excel图片的代码,封装和改动了一部分 用到jar包,POI3.17 不多说了,直接上代码 package com.example.excel; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import...

    看到一篇好用的excel转图片的代码,封装和改动了一部分
    原文https://www.cnblogs.com/newflydd/p/4912662.html#top
    用到jar包

    <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi</artifactId>
         <version>3.17</version>
     </dependency>
     <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.17</version>
     </dependency>
    

    不多说了,直接上代码

    package com.example.excel;
    
    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.FontMetrics;
    import java.awt.Graphics2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.imageio.ImageIO;
    
    import org.apache.commons.lang3.time.DateFormatUtils;
    import org.apache.poi.hssf.usermodel.HSSFDateUtil;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.xssf.usermodel.XSSFFont;
    
    import sun.awt.SunHints;
    
    /**
     * width:pix=getColumnWidthInPixels*1.15
     * height:pix=getHeightInPoints*96/72
     * <p>
     * 本示例用来读取Excel报表文件,并力图将报表无差别转化成PNG图片
     * 使用POI读取Excel各项数据
     * 使用JAVA 2D绘制PNG
     * TODO 本示例基本实现了常见Excel的所有样式输出,但Office2007以后的版本添加了条件样式功能,,所以无法实现
     * 今后可以通过关键字标注等方法,在Excel中需要加入条件样式的单元格用注解标明,使用JAVA计算得出样因为POI的API无法读取条件样式式再绘制出来
     */
    public class DrawFromExcel {
        /**
         *
         * @param excelUrl excel路径
         * @param path 图片存储路径
         * @param filename 文件名
         * @return 返回一个图片路径  path+System.currentTimeMillis()+filename+".png"
         * @throws Exception 异常
         */
        public static String excelTOImage(String excelUrl,String path,String filename) throws Exception {
            //excel是否存在
            File file=new File(excelUrl);
            if(!file.exists()){
                throw new Exception("file does not exist!");
            }
            int imageWidth = 0;
            int imageHeight = 0;
    
            Workbook wb = WorkbookFactory.create(file);
            Sheet sheet = wb.getSheetAt(0);//第一个工作表
            List<CellRangeAddress> rangeAddress = sheet.getMergedRegions(); // 获取整个sheet中合并单元格组合的集合
    
            //检查区域内是否存在数据
            int rowSize = sheet.getPhysicalNumberOfRows();
            int colSize = sheet.getRow(0).getPhysicalNumberOfCells();
            if (rowSize == 0 || colSize == 0) {
                throw new Exception("the row or col of the area is wrong!");
            }
            // 遍历需要扫描的区域
            UserCell[][] cells = new UserCell[rowSize][colSize];
            int[] rowPixPos = new int[rowSize + 1];
            rowPixPos[0] = 0;
            int[] colPixPos = new int[colSize + 1];
            colPixPos[0] = 0;
            
    		float height = 0f;
            float width = 0f;
            for (int i = 0; i < rowSize; i++) {
                for (int j = 0; j < colSize; j++) {
                    cells[i][j] = new UserCell();
                    cells[i][j].setCell(sheet.getRow(i).getCell(j));
                    cells[i][j].setRow(i);
                    cells[i][j].setCol(j);
                    boolean ifShow = !(sheet.isColumnHidden(j) || sheet.getRow(i).getZeroHeight());//行列不可以隐藏
                    cells[i][j].setShow(ifShow);
                    // 计算所求区域宽度
                    float widthPix = !ifShow ? 0 : sheet.getColumnWidthInPixels(j);//如果该单元格是隐藏的,则置宽度为0
                    if (i == 0) {
                         width += widthPix;
                    }
                    colPixPos[j + 1] = (int) (widthPix * 1.15 + colPixPos[j]);
                }
                // 计算所求区域高度
                boolean ifShow = !sheet.getRow(i).getZeroHeight();    //行序列不能隐藏
                float heightPoint = !ifShow ? 0 : sheet.getRow(i).getHeightInPoints(); // 如果该单元格是隐藏的,则置高度为0
                height += heightPoint;
                rowPixPos[i + 1] = (int) (heightPoint * 96 / 72) + rowPixPos[i];
            }
            imageHeight = (int) (height * 96 / 72);
            imageWidth = (int) (width * 115 / 100);
            wb.close();
    
            List<Grid> grids = new ArrayList<>();
            for (int i = 0; i < rowSize; i++) {
                for (int j = 0; j < colSize; j++) {
                    Cell cell = cells[i][j].getCell();//当前表格
                    if (cell == null) {
                        continue;
                    }
                    Grid grid = new Grid();
                    // 设置坐标和宽高
                    grid.setX(colPixPos[j]);
                    grid.setY(rowPixPos[i]);
                    grid.setWidth(colPixPos[j + 1] - colPixPos[j]);
                    grid.setHeight(rowPixPos[i + 1] - rowPixPos[i]);
                    grid.setRow(cells[i][j].getRow());
                    grid.setCol(cells[i][j].getCol());
                    grid.setShow(cells[i][j].isShow());
                    // 判断是否为合并单元格
                    int[] isInMergedStatus = isInMerged(grid.getRow(), grid.getCol(), rangeAddress);
    
                    if (isInMergedStatus[0] == 0 && isInMergedStatus[1] == 0) {
                        // 此单元格是合并单元格,并且不是第一个单元格,需要跳过本次循环,不进行绘制
                        continue;
                    } else if (isInMergedStatus[0] != -1 && isInMergedStatus[1] != -1) {
                        // 此单元格是合并单元格,并且属于第一个单元格,则需要调整网格大小
                        int lastRowPos = Math.min(isInMergedStatus[0], rowSize - 1);
                        int lastColPos = Math.min(isInMergedStatus[1], colSize - 1);
                        grid.setWidth(colPixPos[lastColPos + 1] - colPixPos[j]);
                        grid.setHeight(rowPixPos[lastRowPos + 1] - rowPixPos[i]);
    
                    }
                    // 单元格背景颜色
                    CellStyle cs = cell.getCellStyle();
                    if (cs.getFillPatternEnum() == FillPatternType.SOLID_FOREGROUND)
                        grid.setBgColor(cell.getCellStyle().getFillForegroundColorColor());
    
                    // 设置字体
                    org.apache.poi.ss.usermodel.Font font = wb.getFontAt(cs.getFontIndex());
                    grid.setFont(font);
    
                    // 设置字体前景色
                    if (font instanceof XSSFFont) {
                        XSSFFont xf = (XSSFFont) font;
                        grid.setFtColor(xf.getXSSFColor());
                    }
    
                    // 设置文本
                    String strCell;
                    if(cell.getCellTypeEnum() == CellType.NUMERIC){
                        if (HSSFDateUtil.isCellDateFormatted(cell)) {
                            strCell = DateFormatUtils.format(cell.getDateCellValue(), "yyyy-MM-dd");
                        } else {
                            NumberFormat nf = NumberFormat.getInstance();
                            strCell = String.valueOf(nf.format(cell.getNumericCellValue())).replace(",", "");
                        }
                    }else if(cell.getCellTypeEnum() == CellType.STRING){
                        strCell = String.valueOf(cell.getStringCellValue());
                    }else if(cell.getCellTypeEnum() == CellType.BOOLEAN){
                        strCell = String.valueOf(cell.getBooleanCellValue());
                    }else if(cell.getCellTypeEnum() == CellType.ERROR){
                        strCell = "错误类型";
                    }else {
                        strCell = "";
                    }
    
                    if (cell.getCellStyle().getDataFormatString().contains("0.00%")) {
                        try {
                            double dbCell = Double.parseDouble(strCell);
                            strCell = new DecimalFormat("#.00").format(dbCell * 100) + "%";
                        } catch (NumberFormatException ignored) {
                        }
                    }
    
                    grid.setText(strCell.matches("\\w*\\.0") ? strCell.substring(0, strCell.length() - 2) : strCell);
    
                    grids.add(grid);
                }
            }
    
            BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = image.createGraphics();
            // 平滑字体
            g2d.setRenderingHint(SunHints.KEY_ANTIALIASING, SunHints.VALUE_ANTIALIAS_OFF);
            g2d.setRenderingHint(SunHints.KEY_TEXT_ANTIALIASING, SunHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
            g2d.setRenderingHint(SunHints.KEY_STROKE_CONTROL, SunHints.VALUE_STROKE_DEFAULT);
            g2d.setRenderingHint(SunHints.KEY_TEXT_ANTIALIAS_LCD_CONTRAST, 140);
            g2d.setRenderingHint(SunHints.KEY_FRACTIONALMETRICS, SunHints.VALUE_FRACTIONALMETRICS_OFF);
            g2d.setRenderingHint(SunHints.KEY_RENDERING, SunHints.VALUE_RENDER_DEFAULT);
    
            g2d.setColor(Color.white);
            g2d.fillRect(0, 0, imageWidth, imageHeight);
    
            // 绘制表格
            for (Grid g : grids) {
                if (!g.isShow())
                    continue;
    
                // 绘制背景色
                g2d.setColor(g.getBgColor() == null ? Color.white : g.getBgColor());
                g2d.fillRect(g.getX(), g.getY(), g.getWidth(), g.getHeight());
    
                // 绘制边框
                g2d.setColor(Color.black);
                g2d.setStroke(new BasicStroke(1));
                g2d.drawRect(g.getX(), g.getY(), g.getWidth(), g.getHeight());
    
                // 绘制文字,居中显示
                g2d.setColor(g.getFtColor());
                Font font = g.getFont();
                FontMetrics fm = g2d.getFontMetrics(font);
                int strWidth = fm.stringWidth(g.getText());// 获取将要绘制的文字宽度
                g2d.setFont(font);
                g2d.drawString(g.getText(),
                        g.getX() + (g.getWidth() - strWidth) / 2,
                        g.getY() + (g.getHeight() - font.getSize()) / 2 + font.getSize());
            }
    
            g2d.dispose();
            filename=System.currentTimeMillis()+filename;
            String imgUrl = path+filename+".png";
            ImageIO.write(image, "png", new File(imgUrl));
            System.out.println("Output to PNG file Success!");
            return imgUrl;
        }
    
        /**
         * 判断Excel中的单元格是否为合并单元格
         *
         * @param row          当前行号
         * @param col          当前列号
         * @param rangeAddress 整个sheet中合并单元格组合的集合
         * @return 如果不是合并单元格返回{-1,-1},如果是合并单元格并且是一个单元格返回{lastRow,lastCol},
         * 如果是合并单元格并且不是第一个格子返回{0,0}
         */
        private static int[] isInMerged(int row, int col, List<CellRangeAddress> rangeAddress) {
            int[] isInMergedStatus = {-1, -1};
            for (CellRangeAddress cra : rangeAddress) {
                if (row == cra.getFirstRow() && col == cra.getFirstColumn()) {
                    isInMergedStatus[0] = cra.getLastRow();
                    isInMergedStatus[1] = cra.getLastColumn();
                    return isInMergedStatus;
                }
                if (row >= cra.getFirstRow() && row <= cra.getLastRow()) {
                    if (col >= cra.getFirstColumn() && col <= cra.getLastColumn()) {
                        isInMergedStatus[0] = 0;
                        isInMergedStatus[1] = 0;
                        return isInMergedStatus;
                    }
                }
            }
            return isInMergedStatus;
        }
    }
    
    package com.example.excel;
    
    import java.awt.Color;
    import java.awt.Font;
    
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.xssf.usermodel.XSSFColor;
    
    public class Grid {
        private boolean show;
        private int row;    //对应Excel中的row,也可以理解为cells[i][j]的i
        private int col;    //对应Excel中的col,也可以理解为cells[i][j]的j
        private int x;  //x坐标
        private int y;  //y坐标
        private int width;
        private int height;
        private String text;
        private Font font;//= new Font("微软雅黑", Font.PLAIN, 12);
        private Color bgColor = null;
        private Color ftColor = null;
    
        public int getRow() {
            return row;
        }
    
        public void setRow(int row) {
            this.row = row;
        }
    
        public int getCol() {
            return col;
        }
    
        public void setCol(int col) {
            this.col = col;
        }
    
        public int getX() {
            return x;
        }
    
        public void setX(int x) {
            this.x = x;
        }
    
        public int getY() {
            return y;
        }
    
        public void setY(int y) {
            this.y = y;
        }
    
        public boolean isShow() {
            return show;
        }
    
        public void setShow(boolean show) {
            this.show = show;
        }
    
        public int getWidth() {
            return width;
        }
    
        public void setWidth(int width) {
            this.width = width;
        }
    
        public int getHeight() {
            return height;
        }
    
        public void setHeight(int height) {
            this.height = height;
        }
    
        public String getText() {
            return text;
        }
    
        public void setText(String text) {
            this.text = text;
        }
    
        public Color getBgColor() {
            return bgColor;
        }
    
        /**
         * 将poi.ss.usermodel.Color 转换成  java.awt.Color
         * <a href="http://home.cnblogs.com/u/309701/" target="_blank">@param</a> color
         */
        public void setBgColor(org.apache.poi.ss.usermodel.Color color) {
            this.bgColor = poiColor2awtColor(color);
        }
    
        public void setBgColor(java.awt.Color color) {
            this.bgColor = color;
        }
    
        public Color getFtColor() {
            return ftColor;
        }
    
        public void setFtColor(org.apache.poi.ss.usermodel.Color color) {
            this.ftColor = poiColor2awtColor(color);
        }
    
        public Font getFont() {
            return font;
        }
    
        public void setFont(org.apache.poi.ss.usermodel.Font font) {
            if (font != null) {
                this.font = new java.awt.Font(font.getFontName(), Font.BOLD, font.getFontHeight() / 20 + 2);
            }
        }
    
    
        private java.awt.Color poiColor2awtColor(org.apache.poi.ss.usermodel.Color color) {
            java.awt.Color awtColor = null;
            if (color instanceof XSSFColor) {     //.xlsx
                XSSFColor xc = (XSSFColor) color;
                String rgbHex = xc.getARGBHex();
                if (rgbHex != null) {
                    awtColor = new Color(Integer.parseInt(rgbHex.substring(2), 16));
                }
            } else if (color instanceof HSSFColor) {   //.xls
                HSSFColor hc = (HSSFColor) color;
                short[] s = hc.getTriplet();
                if (s != null) {
                    awtColor = new Color(s[0], s[1], s[2]);
                }
            }
            return awtColor;
        }
    }
    
    package com.example.excel;
    
    import java.awt.Color;
    
    import org.apache.poi.ss.usermodel.Cell;
    
    public class UserCell implements Comparable<UserCell> {
        private Cell cell;
        private int row;
        private int col;
        private boolean show;
        private String text = "";
        private Color color = null;
    
        public Cell getCell() {
            return cell;
        }
    
        public void setCell(Cell cell) {
            this.cell = cell;
        }
    
        public int getRow() {
            return row;
        }
    
        public void setRow(int row) {
            this.row = row;
        }
    
        public int getCol() {
            return col;
        }
    
        public void setCol(int col) {
            this.col = col;
        }
    
        public boolean isShow() {
            return show;
        }
    
        public void setShow(boolean show) {
            this.show = show;
        }
    
        public String getText() {
            return text;
        }
    
        public void setText(String text) {
            this.text = text;
        }
    
        public Color getColor() {
            return color;
        }
    
        public void setColor(Color color) {
            this.color = color;
        }
    
        @Override
        public int compareTo(UserCell uc) {
            try {
                double meDouble = Double.parseDouble(this.getText().replaceAll("%", ""));
                double heDouble = Double.parseDouble(uc.getText().replaceAll("%", ""));
                if (meDouble < heDouble)
                    return -1;
                else if (meDouble > heDouble)
                    return 1;
            } catch (Exception e) {
            }
    
            return 0;
        }
    }
    
    展开全文
  • Excel自动插入图片

    热门讨论 2010-06-19 13:45:08
    看了看别人给出的答案,没有比较理想的方案,做了这3个文件,相信对外贸业务员或其它经常需要在Excel中插入图片的人非常有用。 1.自动插入当前文件夹所有图片到B列并将图片名填入A列.xls 2.自动插入当前文件夹所有...
  • excel自动筛选 在Excel自动筛选器中隐藏箭头 (Hide Arrows in Excel AutoFilter) When you turn on the filter in an Excel worksheet list, or if you create a named Excel table, each cell in the heading row ...

    excel自动筛选

    When you turn on the filter in an Excel worksheet list, or if you create a named Excel table, each cell in the heading row automatically shows a drop down arrow. If you don't need them, here's how you can hide arrows in Excel AutoFilter.

    在Excel工作表列表中打开过滤器时,或者在创建命名的Excel表时 ,标题行中的每个单元格都会自动显示一个下拉箭头。 如果不需要它们,可以按照以下方法在Excel自动筛选器中隐藏箭头。

    Excel自动筛选箭头 (Excel AutoFilter Arrows)

    In the heading row, an AutoFilter arrow button shows a filter icon, if you have filtered that column. If you point to an arrow with a filter icon, a pop up Tool Tip shows the filter criteria.

    在标题行中,如果您已经过滤了该列,则“自动过滤器”箭头按钮将显示一个过滤器图标。 如果您指向带有过滤器图标的箭头,则弹出的工具提示将显示过滤器条件。

    In the screen shot below, the Customer column has been filtered to show 3 specific customers - FoodMart, MegaStore and VegiVille.

    在下面的屏幕快照中,已过滤“客户”列以显示3个特定客户-FoodMart,MegaStore和VegiVille。

    autofilterarrows01

    自动筛选箭头选项 (AutoFilter Arrow Options)

    For an AutoFilter, you have three options for the arrow display:

    对于自动筛选器,箭头显示有三个选项:

    • Leave all the arrows showing

      保留所有箭头所示
    • Remove the AutoFilter, which removes all the arrows

      删除自动筛选,这将删除所有箭头
    • Use programming to hide one or more of the arrows.

      使用编程隐藏一个或多个箭头。

    手动删除自动筛选器 (Manually Remove the AutoFilter)

    For either a worksheet list, or a named table, you can manually turn the AutoFilter on and off, which also shows or hides the arrow buttons.

    对于工作表列表或命名表,您可以手动打开或关闭“自动筛选”,这也会显示或隐藏箭头按钮。

    1. Click any cell in the filtered range

      单击过滤范围内的任何单元格
    2. On the Excel Ribbon, click the Data tab

      在Excel功能区上,单击“数据”选项卡
    3. Click the Filter button.

      单击过滤器按钮。
    autofilterribbon01

    使用宏隐藏自动筛选箭头 (Hide AutoFilter Arrows with Macro)

    Before Lists and Named Tables were added to Excel, there could only be one AutoFilter per worksheet.

    在将列表和命名表添加到Excel之前,每个工作表只能有一个自动筛选。

    Now, in addition to the single worksheet AutoFilter, you can put multiple named tables on a sheet. Each of those tables has its own AutoFilter property.

    现在,除了单个工作表“自动筛选”之外,您还可以在工作表上放置多个命名表。 这些表中的每个表都有其自己的AutoFilter属性。

    There are code examples below, for hiding arrows in a List AutoFilter, and a worksheet AutoFilter. There are more AutoFilter VBA examples on my Contextures website:

    下面有一些代码示例,用于在列表自动过滤器和工作表自动过滤器中隐藏箭头。 我的Contextures网站上还有更多AutoFilter VBA示例:

    使用VBA隐藏列表自动筛选箭头 (Hide List AutoFilter Arrows With VBA)

    If you want to leave one or more arrows visible, but hide the others, you can use a macro.

    如果要使一个或多个箭头可见,而隐藏其他箭头,则可以使用宏。

    In this example, only the second column will have an arrow, and all the others arrows will be hidden.

    在此示例中,仅第二列将具有箭头,而所有其他箭头将被隐藏。

    This code is designed for a named table, which has its own AutoFilter property. There can be multiple named tables on a worksheet, and each table's AutoFilter settings can be different.

    此代码是为命名表设计的,该表具有自己的AutoFilter属性。 工作表上可以有多个命名表,并且每个表的“自动筛选”设置可以不同。

    Sub HideArrowsList1()
    'hides all arrows except list 1 column 2
    Dim Lst As ListObject
    Dim c As Range
    Dim i As Integer
    Application.ScreenUpdating = False
    Set Lst = ActiveSheet.ListObjects(1)
    i = 1
    For Each c In Lst.HeaderRowRange
     If i <> 2 Then
        Lst.Range.AutoFilter Field:=i, _
          VisibleDropDown:=False
     Else
         Lst.Range.AutoFilter Field:=i, _
          VisibleDropDown:=True
     End If
     i = i + 1
    Next
    Application.ScreenUpdating = True
    End Sub
    

    使用VBA隐藏工作表自动筛选箭头 (Hide Worksheet AutoFilter Arrows With VBA)

    To hide the arrows for a worksheet table's AutoFilter, the code is slightly different.

    若要隐藏工作表表的“自动筛选”的箭头,代码略有不同。

    There can be only one worksheet AutoFilter on a worksheet, and in this example, the filtered list starts in cell A1.

    一个工作表上只能有一个工作表“自动筛选”,并且在此示例中,筛选后的列表开始于单元格A1中。

    The following procedure hides the arrows for all columns except column B.

    以下过程隐藏了除B列以外的所有列的箭头。

    Sub HideArrows()
    'hides all arrows except column 2
    Dim c As Range
    Dim i As Integer
    i = Cells(1, 1).End(xlToRight).Column
    Application.ScreenUpdating = False
    For Each c In Range(Cells(1, 1), Cells(1, i))
     If c.Column <> 2 Then
      c.AutoFilter Field:=c.Column, _
        Visibledropdown:=False
     End If
    Next
    Application.ScreenUpdating = True
    End Sub
    

    使用隐藏箭头宏 (Use the Hide Arrow Macros)

    To use these macros, copy them into a regular code module in your workbook. There are instructions here.

    若要使用这些宏,请将它们复制到工作簿中的常规代码模块中。 这里有说明

    You would only have to run the code once, after you set up the filtered list. To run the code,

    设置过滤列表后,您只需运行一次代码。 要运行代码,

    • Click the View tab on the Excel Ribbon

      单击Excel功能区上的“查看”选项卡
    • At the far right of the tab, click the Macros command (click the picture at the top of the command)

      在选项卡的最右边,单击“宏”命令(单击命令顶部的图片)
    • In the list of macros, click the macro that you want to run

      在宏列表中,单击要运行的宏
    • Click the Run button.

      单击运行按钮。

    翻译自: https://contexturesblog.com/archives/2012/05/29/hide-arrows-in-excel-autofilter/

    excel自动筛选

    展开全文
  • POI 隐藏EXCEL中的图形

    2014-12-02 08:41:55
    但是查找了半天也没有找到图形隐藏,最后只好折衷一下,将需要隐藏的图形做删除操作。 首先定义两个List分别用于存储当前sheet的所有图形以及需要显示的图形。 //所有图形集合 private List shapeCollection; //...

    最近开发遇到了一个需求,需要对模板文件上的图形进行一些隐藏设置,生成一个新的文件。但是查找了半天也没有找到图形隐藏,最后只好折衷一下,将需要隐藏的图形做删除操作。

    首先定义两个List分别用于存储当前sheet的所有图形以及需要显示的图形。

    //所有图形集合
    private List<HSSFShape> shapeCollection;
    //需要显示的图形集合
    private List<HSSFShape> visableShape;


    初始化List,shapeCollection 获取当前out_sheet的所有图形集合,此处out_sheet是一个HSSFSheet对象。此处需要注意:之所以new ArrayList这个对象,是由于out_sheet.getDrawingPatriarch().getChildren()返回的List未实现remove()方法,因此此处做了这个处理。


    private void InitalizeShape() {
    		// 初始化显示集合
    		visableShape = new ArrayList<HSSFShape>();
    		// 获取当前需要修改sheet的所有图形集合,此处out_sheet是一个HSSFSheet对象
    		shapeCollection = new ArrayList<HSSFShape>(out_sheet.getDrawingPatriarch().getChildren());
    	}
    由于shapeCollection已经存放了当前sheet的所有图形集合,因此在遇到需要显示的图形时作如下操作:即就是将需要显示的对象加入到visableShape集合中,此处取的是shapCollection的下标,至于按图形名称取的的话,未做调查。

    visableShape.add(shapeCollection.get(19));

    //从总的集合里剔除需要显示的对象,此时总的集合中剩下的为需要隐藏的图形对象
    	private void removeShapeFromCollection() {
    		for (HSSFShape shape : visableShape) {
    			shapeCollection.remove(shape);
    		}
    	}


    此处调用了上面的方法,也就是说,当你需要隐藏图形时,只需调用下面这个方法就可以了。
    // 从输出的sheet中移除需要隐藏的图形
    	private void removeShapeFromSheet() {
    		removeShapeFromCollection();
    		HSSFPatriarch shapePatriarch = out_sheet.getDrawingPatriarch();
    
    		for (HSSFShape shape : shapeCollection) {
    			shapePatriarch.removeShape(shape);
    		}
    	}




    展开全文
  • Excel:插入图片随表格隐藏,或显示

    千次阅读 2014-08-01 16:55:25
    今天遇到个问题,在做数据表的时候,插入的图片一直显现,不随当前变化的表格做变化,十分不方便, 在网上查了查,又试了下,找到属性,可以处理这个问题,右键点击,选择大小和属性,大小和位置随单元格而变,...
  • 简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,...提取图形的文本、图片 设置图形的显示、隐藏 删除图形 4.1删除指定图形 4.2 删除所有图形 所需工具 Free Spire.XLS for .NET 8.3 (社区版) PS:...
  • Excel 如何将图片URL 显示为图片

    万次阅读 2018-09-12 09:41:00
    所以通过宏来完成将Excel中url替换为插入图片,又为了避免插入图片太多,导致Excel大小暴增,所以在选择了对应门店门头照片链接时才插入图片。 具体步骤如下: 1、进入对应sheet页的View Code 一种...
  • 通过爬虫访问 Excel 存储的图片链接,并且进行图片下载爬虫编写背景1、先想办法,通过程序获得 Excel 图片链接2、获取图片的命名3、根据上面的图片链接,以及图片的名称,就可以下载图片啦4、多个表格同时下载...
  • Excel隐藏行和列的快捷方法 本质是行高和列宽设置为0 对于第一行和A列的隐藏:选中B列向左边拖动,标题显示选中2C,即选中2行: 再按右键选取消隐藏 若工作表中隐藏很多行和列:可以先全选整个工作表,分别双击...
  • Excel插入图片

    千次阅读 2009-02-28 16:43:00
    PicturesPtr不可能被倒出来的,因为它是在IDL中隐藏了。...我找到一种方法可以插入图片,首先导入excel9.olb(Excel 95 and prior : xl5en32.olb Excel 97 : excel8.olb Excel 2000 : excel9.olb Excel
  • excel迷你图 vba 显示隐藏数据的Excel迷你图 (Show Excel Sparklines for Hidden Data) Do you use the sparklines that were introduced in Excel 2010? Last week, I was building a dashboard, and wanted to ...
  • Excel中图片 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571044813_971416.png) 发现了问题是,获取的ecahrts的base64编码有问题。 如果当前页面显示的是echarts图片,获取的编码没...
  • 本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本、设置文本方向、文本对齐方式、设置文本框大小、位置、填充色/填充图片、文本框旋转角度、文本框名称、可选文本、文本框隐藏或显示等操作...
  • ExcelVBA之sheet完全隐藏

    2020-05-29 00:33:22
    问题: 使某些Excel的文档不直接可见,除非有密码,该命令和隐藏命令不一样,不输入正确密码,根本不知道还有其他sheets如机密文档sheet:如下文档只可见普通文档,机密文档完全不可见,不是通过取消隐藏来实现可见...
  • table导成隐藏excel

    2015-11-27 09:08:08
    ![图片说明](https://img-ask.csdn.net/upload/201511/27/1448615246_985166.png) 比如这个table,我想导出excel文件的时候,让红框出来的列是隐藏的,怎么实现
  • 数据录入或者其他数据处理操作,有时候为了显示方便,会把一些行或列隐藏起来,例如下图原始数据,目标是将第6~第20行隐藏起来。 图1 第6~第20行是需要隐藏的行 隐藏方法:选中某一行,然后拖到前面某一行,将中间...
  • 我们经常用隐藏和取消隐藏的功能,创建组一样可以完成隐藏和取消隐藏的功能,而且看起来非常高大上,许多大企业经常用创建组的功能。以下图的案例为背景: 首先,选择A到D列,然后点击“数据—创建组—确定”;然后...
  • 这几天分别有人问我用word和excel怎么做链接、做目录......附件的那张表其实包含很多表:目录表+子表(不同链接内容的表格);但显示时:工作表标签被取消显示了 菜单上操作: 工具---选项---视图--
  • Python excel图片保存

    千次阅读 2020-11-26 13:36:24
    Python excel图片保存     十分想念顺店杂可。。。   excel内容     下面为代码,仅供参考   #!/usr/bin/python # -*- coding: utf-8 -*- # @Time : 2020/11/26 10:29 # @Author :...
  • 在工作,经常需要将一个商品表格插入商品的图片,比如在鞋服箱包等行业,那是经常要用到Excel中的商品需要插入商品的图片,如果一个个的插入,那会疯掉的,所以根据自己所在的鞋业行业,和借鉴了前辈的部分代码,...
  • 读取Excel内容生成PNG图片1.需要的jar包2.需要的pojo类核心代码生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特...
  • '该功能会删除所有对象,没有对图片,形状等进行详细区分。如果excel中包含图表等。 ‘【请不要使用该功能】 Sub DeleteAllObject() For i = 1 To ActiveWorkbook.Worksheets.Count Dim obj As Object Dim cc ...
  • 为文档添加必要的批注可以给文档使用者提供重要的提示信息,下面的示例,将介绍通过C#编程语言来给Excel表格的指定单元格内容添加批注,此外,对于已有的批注,如果需要修改,我们也可以进行编辑或者删除批注。...
  • excel有一个设置,插入的图片隐藏着超链接设置(即表面上看着是图片,但实际上为一个超链接),该设置在平时使用excel容易发现,单通过labview向excel插入图片时容易忽略,所以如果每次插入的图片路径相同(内容不同...
  • excel中将图片居中 无法在Excel 2007中将对象移出图纸 (Cannot Shift Objects Off Sheet in Excel 2007) Recently, while working on a small worksheet in Excel 2007, I tried to insert a new row. Up popped an ...
  • web项目整合上传excel图片 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,592
精华内容 5,436
关键字:

如何删除excel中隐藏的图片