精华内容
下载资源
问答
  • } } /** * 拷贝后,进行修改,其中File1为被copy对象,File2为修改后创建的对象 * 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去, 以使单元格的内容以不同的形式表现 * * @param File1...

    import jxl.*;

    import jxl.format.UnderlineStyle;

    import jxl.write.*;

    import jxl.write.Number;

    import jxl.write.Boolean;

    import java.io.*;

    class excel {

    public excel() {

    }

    /**

    * 读取excel

    *

    * @param filepath

    */

    public static void readexcel(String filepath) {

    try {

    InputStream is = new FileInputStream(filepath);

    Workbook rwb = Workbook.getWorkbook(is);

    // sheet st = rwb.getsheet("0")这里有两种方法获取sheet表,1为名字,2为下标,从0开始

    Sheet st = rwb.getSheet(0);

    Cell c00 = st.getCell(1, 0);

    // 通用的获取cell值的方式,返回字符串

    String strc00 = c00.getContents();

    // 获得cell具体类型值的方式

    if (c00.getType() == CellType.LABEL) {

    LabelCell labelc00 = (LabelCell) c00;

    strc00 = labelc00.getString();

    }

    // 输出

    System.out.println(strc00);

    // 关闭

    rwb.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 输出excel

    *

    * @param os

    */

    public static void writeexcel(OutputStream os) {

    try {

    /**

    * 只能通过api提供的工厂方法来创建workbook,而不能使用WritableWorkbook的构造函数,

    * 因为类WritableWorkbook的构造函数为protected类型

    * method(1)直接从目标文件中读取WritableWorkbook wwb =

    * workbook.createWorkbook(new file(targetfile)); method(2)如下实例所示

    * 将WritableWorkbook直接写入到输出流

    *

    */

    WritableWorkbook wwb = Workbook.createWorkbook(os);

    // 创建excel工作表 指定名称和位置

    WritableSheet ws = wwb.createSheet("test sheet 1", 0);

    WritableSheet ws2 = wwb.createSheet("test sheet 2", 1);

    // **************往工作表中添加数据*****************

    // 1.添加label对象

    Label label = new Label(0, 0, "this is a label test");

    ws.addCell(label);

    Label label2 = new Label(0, 0, "this is a label test2");

    ws2.addCell(label2);

    // 添加带有字型formatting对象

    WritableFont wf = new WritableFont(WritableFont.TIMES, 18,

    WritableFont.BOLD, true);

    WritableCellFormat wcf = new WritableCellFormat(wf);

    Label labelcf = new Label(1, 0, "this is a label test", wcf);

    ws.addCell(labelcf);

    // 添加带有字体颜色的formatting对象

    WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10,

    WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,

    jxl.format.Colour.RED);

    WritableCellFormat wcffc = new WritableCellFormat(wfc);

    Label Labelcf = new Label(1, 0, "this is a Label cell", wcffc);

    ws.addCell(Labelcf);

    // 2.添加number对象

    Number Labeln = new Number(0, 1, 3.1415926);

    ws.addCell(Labeln);

    // 添加带有formatting的number对象

    NumberFormat nf = new NumberFormat("#.##");

    WritableCellFormat wcfn = new WritableCellFormat(nf);

    Number Labelnf = new jxl.write.Number(1, 1, 3.1415926, wcfn);

    ws.addCell(Labelnf);

    // 3.添加boolean对象

    Boolean Labelb = new jxl.write.Boolean(0, 2, false);

    ws.addCell(Labelb);

    // 4.添加datetime对象

    jxl.write.DateTime Labeldt = new jxl.write.DateTime(0, 3,

    new java.util.Date());

    ws.addCell(Labeldt);

    // 添加带有formatting的dateformat对象

    DateFormat df = new DateFormat("dd mm yyyy hh:mm:ss");

    WritableCellFormat wcfdf = new WritableCellFormat(df);

    DateTime Labeldtf = new DateTime(1, 3, new java.util.Date(), wcfdf);

    ws.addCell(Labeldtf);

    // 添加图片对象,jxl只支持png格式图片

    // File image = new File("f:\\2.png");

    // WritableImage wimage = new WritableImage(0,1,2,2,image);

    // ws.addImage(wimage);

    // 写入工作表

    wwb.write();

    wwb.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 拷贝后,进行修改,其中File1为被copy对象,File2为修改后创建的对象

    * 尽单元格原有的格式化修饰是不能去掉的,我们还是可以将新的单元格修饰加上去, 以使单元格的内容以不同的形式表现

    *

    * @param File1

    * @param File2

    */

    public static void modifyexcel(File File1, File File2) {

    try {

    Workbook rwb = Workbook.getWorkbook(File1);

    WritableWorkbook wwb = Workbook.createWorkbook(File2, rwb);// copy

    WritableSheet ws = wwb.getSheet(0);

    WritableCell wc = ws.getWritableCell(0, 0);

    // 判断单元格的类型,做出相应的转换

    if (wc.getType() == CellType.LABEL) {

    Label Label = (Label) wc;

    Label.setString("the value has been modified");

    }

    wwb.write();

    wwb.close();

    rwb.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    // 测试

    public static void main(String[] args) {

    try {

    // 读excel

    excel.readexcel("f:/testread.xls");

    // 输出excel

    File Filewrite = new File("f:/testwrite.xls");

    Filewrite.createNewFile();

    OutputStream os = new FileOutputStream(Filewrite);

    excel.writeexcel(os);

    // 修改excel

    // excel.modifyexcel(new File(""),new File(""));

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    /*

    * 2.在jsp中做相关测试,创建一个writeexcel.jsp

    * response.setcontenttype("application/vnd.ms-excel"); File Filewrite = new

    * File("f:/testwrite.xls"); Filewrite.createNewFile(); new

    * FileOutputStream(Filewrite); excelhandle.writeexcel(new

    * FileOutputStream(Filewrite)); %>

    * 在ie中浏览writeexcel.jsp就可以动态生成excel文档了,其中response.setcontenttype

    * ("application/vnd.ms-excel");语句必须要,才能确保不乱码, 在jsp中输入

    * ="application/vnd.ms-excel;charset=gbk"%>不行。

    */

    展开全文
  • 使用pandas处理excel,并使用Openpyxl修改单元格格式使用pandas处理excel,并使用Openpyxl修改单元格格式需求处理基本流程查询资料过程1.读取数据,2.指标的计算:计算较为简单,新指标由某几列的四则运算生成,放...

    使用pandas处理excel,并使用Openpyxl修改单元格格式

    起因:在某团实习,每天要处理格式固定的excel数据,觉得有点烦,尝试下能不能写个自动的程序,所以花了将近两天时间,从0到1基本完成了对excel的处理(纯谷歌)。
    下边简要介绍不同需求的处理,以及中间遇到的问题。

    需求

    在这里插入图片描述

    数据大致如图,图片是模拟原数据生成的一个测试样例,只需要关注行索引即可,注意这里的’A’是第一行的名称,是行索引,不是最上方的ABCD行号。其中的数据也是随机生成的。需要筛选出部分数据,并根据某列计算出新的指标,写入新的sheet,最后对sheet添加标题栏,说明包含日期,sheet名称。

    处理基本流程

    1. 利用pandas读取表格数据
    2. 根据某几行,生成新的指标,将新的指标添加到表格中
    3. 筛选出需要的列
    4. 添加标题栏,设置部分单元格格式

    查询资料过程

    声明:本文中涉及到读取,保存数据得操作均使用excel,不涉及csv,不过这两者应该是共通的,且处理csv的函数应该比excel的更加智能。所有的列索引均不涉及到实际数据,(ps:就是有的忘了改)
    **工具:**最初使用jupyter,因为方便查看中间过程,方便调试,最后使用pycharm一键处理。

    1.读取数据,

    参数包括excel路径,sheet页面名称,其中df为DataFrame格式

    `df = pd.read_excel(path_data,sheet_name=sheet_original)`
    

    2.指标的计算:计算较为简单,新指标由某几列的四则运算生成,放代码:

    df['A'] = (df['B'] / df['C'])
    df['D'] =((df['A'] - df['C']) / df['A'])
    

    其中引号中间的为列名,新生成的数据会自动插入到df中。
    其中数据格式需要设置:保留小数点,设置为百分数,保留小数点较为简单,代码如下:

    df['A'] = df['A'].round(decimals=2)
    df['B'] = df['B'].round(decimals=2)
    

    百分比的功能最开始有点问题,代码如下:

    df['A'] = df['A'].map(lambda x : format(x,'.2%'))
    

    但是这个代码在excel中生成的百分数是文本格式,左上角会有个绿色的三角,很难受,而且百分数不能直接从文本转成数值形式,本来一开始都打算在excel里边手调百分比,后来在openpyxl中找到了解决办法,这个之后再说。

    3.筛选需要的列:新的df列索引的顺序会按照代码中顺序生成

    df1 = df[['A','B','C']]
    

    根据某项指标排序并选择最大的n行
    ascending是决定升序(True)降序(False)。
    还有可以将某些索引提取出来,放在最前方,然后观测部分列的功能,涉及到’index’,'values’等关键字,这些很容易搜到,就不做介绍了

    #将原数据排序
    df1.sort_values(ascending=False,by = 'A').head(n)
    #拷贝一份新的数据
    df2 = df1.sort_values(ascending=False,by = 'A').head(n)
    

    4.如何保存dataframe到新的sheet

    这里遇到了第一个难点:怎么在保留原数据的基础上,保存多个sheet。
    搜索到的都会覆盖原数据,有的为了避免覆盖,会先将原数据保存,再保存新数据,但是这样在需要保存多个新数据时,仍然只能保存一个,代码如下,真保存操作需要设置engine = ‘openpyxl’,mode=‘a’,即添加模式。这里如果不设置engine的话,是无法使用mode=‘a’,但是这里后来又埋了坑,一些xlsxwrite的功能没法使用,但是xlsxwrite又没有添加模式,太难了。

    #保存操作 会覆盖原数据,去除索引
    df2.to_excel('测试.xlsx',sheet_name = 'topn',index = False)
    
    #保存操作,仍然是覆盖,只不过是原页又保存了一遍
    with pd.ExcelWriter('2.xlsx') as writer:
         df.to_excel(writer, sheet_name='data')
         df.to_excel(writer, sheet_name='data2')
         
    #保存操作,不覆盖(真)
    with pd.ExcelWriter(path_data, engine='openpyxl', mode='a') as writer:
        df2.to_excel(writer,sheet_name=sheet_name1,index=False)
        df3.to_excel(writer, sheet_name=sheet_name2, index=False)
    

    样式调整,设置字体、颜色、标题栏

    基本流程之后,实现的结果如下所示:
    在这里插入图片描述

    数据是按照某项指标从大到小排序。

    和最终结果只有一步之遥了。
    最终结果如上所示,可以看出,有以下几个区别
    在这里插入图片描述

    1. 最上方有日期,说明 等标题栏,并且背景填充,加粗。
    2. 序号列(这个最初保存的时候就有,我给它取消了),但是原本保存的序号是从0开始,这里需要改为从1开始。
    3. 列索引一行背景填充
    4. 格式的设置:字体微软雅黑,左对齐。

    下边开始最后的完善
    该部分中间找了很久,就不放中间的改进过程了,直接一步到位:序号对应上边的区别序号

    1.插入标题和日期

    df2.to_excel(writer,sheet_name=sheet_1,index=True,header=True, startrow=2)
    关键在于后边的几个关键词,大家可以从字面意思理解:index,保存索引,startrow是开始的行,header会决定列索引那行会不会变为序号的一部分,大家可以试着修改这些,查看不同之处。
    最好去看一下函数中还有什么参数,比如这个startrow,我最开始在想如何在行索引上边插入东西的时候走了很多弯路,后来发现有这么个参数,豁然开朗。
    下方为在最上方插入日期和标题,today是调用函数得到当前日期,3行一列插入‘序号’,

    ws.cell(row=1, column=1, value='日期')
            ws.cell(row=1, column=2, value=today)
            ws.cell(row=1, column=3, value=sheet_1+'产品')
            ws.cell(row = 3,column=1,value='序号')
    

    2.排序后索引会乱,所以这里需要索引重新开始,并从1开始

    #索引重新排序,并从1开始
    df2.reset_index(drop=True, inplace=True)
    df2.index = np.arange(1,len(df2)+1)
    

    3和4放在一起,都是使用openpyxl设置格式

    最初找格式设置的时候走了不少弯路,styler等设置,但是最后发现openpyxl最方便
    放上网址

    https://zhuanlan.zhihu.com/p/261962080
    

    上述网址包含了对字体,填空,对齐方式等设置,但是存在一个缺点,很多都是对单个单元格进行设置
    体。无法对某片区域设置,
    在某篇博客找到了部分区域设置的方法:https://blog.csdn.net/chaodaibing/article/details/108823878
    这里是自定义了一个函数,对某片区域遍历操作。
    因为我的格式设置比较单一,删除了一部分边框设置,另外设置了,填充颜色的设置。代码比较简单,大家可以根据自己的需要自行修改代码。其中百分数的设置就在这里!!,也不会在显示文本格式了!!拿捏!几位百分比都可以改写,函数中包含了设置黑体,单一对齐方式等功能,如果大家的需求比较复杂,比如要设置不同的对齐方式,除了黑体还需要其他的,都可以修改该函数,修改难度较小。
    可以将参数传递到Font,Alignment等函数中。
    博客中还有设置单元格宽度的函数,本文中没有用到(emmm其实是手动设置行宽)。

    def set_cells(cells,type,color=000000):
      aligncenter=Alignment(horizontal='center',vertical='center')  #居中
    
      # border=Border(left=sidestyle,right=sidestyle,top=sidestyple,bottom=sidestyle)
      for i in cells:
        for j in i:
            if(type=='percent'):
                j.number_format='0.00%'
            elif(type=='bold'):
                j.style='Pandas'
            elif(type=='center'):
                j.alignment=aligncenter
            elif(type=='color'):
          	    j.font = Font(color=color)  #solid为样式
            elif(type=='fill'):
                j.fill = PatternFill(patternType="solid", start_color=color)  # 纯色填充
    

    最后附上全文代码,如果有错误请大家指教,会及时改正的,代码写的比较烂,大家不要介意。由于实习原因,里边的列索引我都把改成了ABCD,数量可能和图文的图片对应不上,大家只要改成自己的数据就可以了,环境的安装也比较简单,就不赘述了。

    所有的列索引名称都是用ABCD代替

    # 导入必要的包
    import pandas as pd
    from openpyxl.styles import Font, Border, Side, PatternFill, Alignment
    import datetime
    import numpy as np
    
    
    def set_cells(cells, type, color=000000):
        aligncenter = Alignment(horizontal='left', vertical='center')  # 居中
    
        # border=Border(left=sidestyle,right=sidestyle,top=sidestyple,bottom=sidestyle)
        for i in cells:
            for j in i:
                j.font=Font(name = u'微软雅黑')
                if (type == 'percent'):
                    j.number_format = '0%'
                elif (type == 'bold'):
                    j.style = 'Pandas'
                elif (type == 'left'):
                    j.alignment = aligncenter
                elif (type == 'color'):
                    j.font = Font(color=color)  # solid为样式
                elif (type == 'fill'):
                    j.fill = PatternFill(patternType="solid", start_color=color)  # 纯色填充
    
    
    def main():
        df = pd.read_excel(path_data, sheet_name=sheet_original)
    
        # 数据处理生成
        df['A'] = df['B'] / df['C']
        df['D'] = df['E'] / df['F)']
        df['X'] = df['A'] / df['B']
        df['Y'] = (df['A'] - df['B']) / df['A']
    
        # 保留两位小数
        df['A'] = df['A'].round(decimals=2)
        df['A'] = df['B'].round(decimals=2)
    
        # 筛选需要的表格,excel的列会按照这个顺序生成
    
        df1 = df[['A', 'B', 'C', ...]]
        # 重新对序号排序,索引从1开始
        df2 = df1.sort_values(ascending=False, by='A').head(50)
        df2.reset_index(drop=True, inplace=True)
        df2.index = np.arange(1,len(df2)+1)
        df3 = df1.sort_values(ascending=False, by='B').head(50)
        df3.reset_index(drop=True, inplace=True)
    
        # 保存操作,不覆盖
        with pd.ExcelWriter(path_data, engine='openpyxl', mode='a') as writer:
            df2.to_excel(writer, sheet_name=sheet_1, index=True, header=True, startrow=2)
            ws = writer.sheets[sheet_1]
    
            # 插入标题:日期、说明
            ws.cell(row=1, column=1, value='日期')
            ws.cell(row=1, column=2, value=today)
            ws.cell(row=1, column=3, value=sheet_2 + '产品')
            ws.cell(row=3, column=1, value='序号')
    
            # 设置字体与单元格格式
            set_cells(ws['A1:C1'], 'bold')
            set_cells(ws['A1:M53'], 'left')
            set_cells(ws['A3:O3'], 'fill', 'FF8C00')
            set_cells(ws['C1:C1'], 'fill', 'FFFF00')
    
            # 设置为百分数
            set_cells(ws['L4:L53'], 'percent')
            set_cells(ws['O4:O53'], 'percent')
    
            
            df3.to_excel(writer, sheet_name=sheet_2, index=True,header=True,startrow=2)
            ws = writer.sheets[sheet_2]
            ws.cell(row=1, column=1, value='日期')
            ws.cell(row=1, column=2, value=today)
            ws.cell(row=1, column=3, value=sheet_2 + '产品')
            ws.cell(row=3, column=1, value='序号')
    
            # 设置字体与单元格格式
            set_cells(ws['A1:C1'], 'bold')
            set_cells(ws['A1:M53'], 'left')
            set_cells(ws['A3:O3'], 'fill', 'FF8C00')
            set_cells(ws['C1:C1'], 'fill', 'FFFF00')
    
            # 设置为百分数
            set_cells(ws['L4:L53'], 'percent')
            set_cells(ws['O4:O53'], 'percent')
    
    
    if __name__ == "__main__":
            # 数据源路径  页面名称
            path_data = r'xxx.xlsx'
            sheet_original = r'sheet_name'
            today = str(datetime.date.today())
            # 保存页面名称
            sheet_1 = '1TOPn'
            sheet_2 = '2TOPn'
    
            main()
    
    展开全文
  • 【已解决】python 使用xlrd,xlwt 修改execl单元格的背景色 【解决过程】 之前查百度,问同事,一直没找到满意的答案,后来找到了几篇不相干的文章,自己整理整理,理解理解,总算是理出了令自己比较满意的答案: 分...

    【已解决】python 使用xlrd,xlwt 修改execl单元格的背景色

    【解决过程】
    之前查百度,问同事,一直没找到满意的答案,后来找到了几篇不相干的文章,自己整理整理,理解理解,总算是理出了令自己比较满意的答案:

    分两种情况:
    一、 原execl 表格中的数据不改变,只改变需要改变的单元格的背景

    import xlrd
    from xlutils.copy import copy
    import xlwt
    
    # 第一步  把原表格中的数据拷贝一份
    path = 'E:\\测试文件\\test.xls'
    book = xlrd.open_workbook(path)
    #  book = xlrd.open_workbook(path, formatting_info=True)
    #  设置 formatting_info=True ,当打开表格是保存表格原有的样式,进行保存时,
    #  原来的样式不会丢失
    sheet = book.sheets()[0]
    wb = copy(book)
    ws = wb.get_sheet(0)
    
    # 第二步  设置样式
    pattern = xlwt.Pattern()
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN
    pattern.pattern_fore_colour = 5 		 # 5 背景颜色为黄色
    #1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon,
    # 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray
    
    style = xlwt.XFStyle()
    style.pattern = pattern
    
    # 第三步  写入数据并保存
    ws.write(1, 1, '苹果', style)	 #  顺序为 row, column, value, style
    ws.write(1, 2, '南瓜', style)
    ws.write(1, 3, '猫头鹰', style)
    ws.write(2, 2, '', style)           # 单元格数据为空,背景为黄色
    # value会覆盖原单元格的数据,如果不想被覆盖了,需提前把原单元格的数据获取到再写入
    wb.save(path)
    
    # 开始时的样式
    ![原始数据](https://img-blog.csdnimg.cn/2019061800041589.PNG)
    
    # 运行后的样式
    ![背景色改变](https://img-blog.csdnimg.cn/20190618000519842.PNG)
    ``
    
    

    二、新建一个工作薄,写入数据后再保存到指定的表格中
    如果原表格中有数据,那么数据会丢失
    如果是空白表格,则不会影响结果

    # 第一步
    wb = xlwt.Workbook()
    ws = wb.add_sheet("大千世界")    # 大千世界 为sheet名,可自行定义
    
    # 第二步,第三步同上
    # 运行结果
    ![其他数据丢失](https://img-blog.csdnimg.cn/20190618001936853.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzM1NjkwMA==,size_16,color_FFFFFF,t_70)
    # 其他数据已丢失
    # 可以通过修改 wb.save(path) 里面的  path 来改变保存的位置,原表格的数据就不会丢失了
    #  sheet 的名称也改过来了
    ![修改了sheet名称](https://img-blog.csdnimg.cn/20190618002444933.PNG)
    
    

    三、在循环中灵活控制是否添加背景色(隔行变色)

    将第二步中的
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN
    改为:
    pattern.pattern = xlwt.Pattern.NO_PATTERN
    其他地方不变,依然不会添加背景色
    
    

    四、添加背景色导致单元格边框消失

    【解决办法】
    方法一、灵活控制是否添加背景色
    方法二、添加表格样式

    添加表格样式
    在上述第三步,设置样式的地方添加表格的样式
    borders = xlwt.Borders()       # Create borders
     
    borders.left = xlwt.Borders.MEDIUM    # 添加边框-虚线边框
    borders.right = xlwt.Borders.MEDIUM  
    borders.top = xlwt.Borders.MEDIUM   
    borders.bottom = xlwt.Borders.MEDIUM  
    
    borders.left_colour = 0x90            # 边框上色
    borders.right_colour = 0x90
    borders.top_colour = 0x90
    borders.bottom_colour = 0x90
     
    style = xlwt.XFStyle()               # Create style
    style.borders = borders              # Add borders to style
    
    展开全文
  • #region 2.NPOI读取Excel 验证Excel数据的有效性(非空) 并修改指定单元格样式  IWorkbook workbook = null;  ISheet sheet = null;  ArrayList questionRowIndex = new ArrayList();/*收集出现问题行的索引*/
    #region 2.NPOI读取Excel 验证Excel数据的有效性(非空) 并修改指定单元格样式
    
                IWorkbook workbook = null;
                ISheet sheet = null;
                ArrayList questionRowIndex = new ArrayList();/*收集出现问题行的索引*/


                using (FileStream fs = System.IO.File.Open(readExcelPath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                { 
                    #region 选择解析方式
                    if (dataLog.ExcelName.IndexOf(".xlsx") > 0)
                    {
                        workbook = new XSSFWorkbook(fs);
                    }
                    else if(dataLog.ExcelName.IndexOf(".xls") > 0)
                    {
                        workbook = new HSSFWorkbook(fs);
                    }
                    #endregion


                    #region 核验数值列数据是否为空 并记录为空索引行 修改Excel指定索引行后重新保存


                    sheet = workbook.GetSheetAt(0);/*指定数据格式只读取索引值为0的第一个sheet*/
                    IRow row = null;                
                    for(int j =1;j < sheet.PhysicalNumberOfRows && sheet.GetRow(j) != null;j++)/*j=1 从索引的第一行开始过滤掉表头*/
                    {
                        row = sheet.GetRow(j);
                        if (string.IsNullOrWhiteSpace(row.GetCell(5).ToString()))/*验证数值非空*/
                        {                      

                            questionRowIndex.Add(j);


                            /*修改样式关键代码*/
                            ICellStyle style = workbook.CreateCellStyle();
                            style.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
                            style.FillPattern = FillPattern.SolidForeground;

                            style.FillBackgroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;

    /*修改指定单元格样式 如果要修改行样式则需要将row.Cells.Count循环出来,挨个设置!*/

                            row.Cells[5].CellStyle = style;

    //for(int i=0;i<row.Cells.Count;i++)

    //{

    // row.Cells[i].CellStyle = style;

    //}



                            /*重新修改文件指定单元格样式*/
                            FileStream fs1 = System.IO.File.OpenWrite(readExcelPath);
                            workbook.Write(fs1);
                            fs1.Close();          
                 
                        }
                    }
                    #endregion
                }
    展开全文
  • 在前面的《Excel基础—工作界面概述》章节中我们有提到名称框,不知道大家还有没有印象,今天来单独给大家讲解名称框有哪些妙用。 首先给大家回忆一下,名称框在哪? 老样子先上思维导图,来看看名称框到底有...
  • 一、分隔单元格的方法1、用“transform: rotate(-55deg);”把一条水平线旋转一定角度就成斜线了2、利用以下命令调整分割线位置等。:after:beforetransform: rotate(-55deg);transform-origin: top;3、注意:加斜线的...
  • String[] resourceRowName = {"序号","医院名称","科室名称","资源类别名称","资源所需数量","备注","资源信息添加时间","资源信息修改时间"}; //预案名称的样式 CellStyle planHeadStyle = PoiUtil....
  • def get_data(): df = pd.read_excel('data.xlsx',sheet_name='Sheet1') # 读取excel表数据,生成dataframe df_entry = df[df['来源分区'].isin([name_entry.get()])] # 用isin函数筛选输入内来源分区的数据 df_...
  • HTML表格标记教程(27):单元格的背景图像属性BACKGROUND互联网 发布时间:2008-10-17 18:56:37 作者:佚名 我要评论我们可以为单元格设置背景图像,可以使用任何GIF或者JPEG图片文件。基本语法语法解释定义背景图象时...
  • 单元格属性

    2021-06-12 04:17:33
    值是单元格的真实值,当单元格被引用时,引用的就是单元格的真实值●举例:表达式A1+B1,其运算结果就是A1单元格的值加上B1单元格的值。显示格式单元格属性列表中第二项是显示格式,用来设置值在...
  • ( 300 字以上) ( 3 )对课程内容增、删或修改建议。(至少一条, 100 字以上) ( 4 )对任课教师的教学方法的意见和建议。(至少一条, 100 字以上) ( 5 )对本课程评分体系等意见和建议。(至少一条, 100 字以上) ( 6 )课程...
  • 这个工具类来源于我们项目的实践,简化了一些重复性的工作,欢迎尝试,欢迎提出问题。工具类提供了设置单元格的基本背景颜色、字体、字号、字体颜色、边框等,还实现了导入导出、磁盘读写Excel。
  • 获取选中行数据 获取选中数目 验证是否全选 ... //监听单元格编辑 ... var value = obj.value //得到修改后的值, ... οnclick="selectRole()" class="layui-btn layui-btn-normal">角色名称 </div> --> </...
  • 如何批量修改文件名称?我们在使用WinXP电脑的时候,发现有的文件后缀名格式不同,这时候我们需要对文件扩展名进行修改。如果数量少的话,我们可以直接点击修改就可以了;如果是数量大的,那就比较累,这时候我们可以...
  • 纵向表头和横向表头 默认处理的是横向的表头,也就是表头在上方,数据在下方。 如果想要处理纵向表头,建议将纵向的表头...只要这个单元格标题和对应注解的信息是相同即可 通过注解和工具类将,excel的数据并转换为Li
  • Python设置excel单元格格式

    万次阅读 多人点赞 2019-02-25 16:50:48
    xlwt 中设置单元格样式主要是通过 XFStyle 这个类来完成的,XFStyle 类中属性与单元格属性的对应关系如下: XFStyle属性名 对应单元格属性 值类型 num_format_str 数字 str font 字体 Font类实例...
  • 之前我做过一个poi到处excel数据的博客,但是,后面使用起来发现,导出的数据单元格样式都不对。很多没有居中对齐,很多单元格的格式不对,还有就是单元格的大小不对,导致数据显示异常,虽然功能可以使用但不是很...
  • Python xlwt 模块 Excel表格 基础 3:单元格格式、字体格式、对齐方式、边框及填充等前言:1、数据类型设置2、字体设置3、单元格对齐方式4、单元格边框设置5、填充设置6、单元格保护最后: 前言: 前面两节博客介绍...
  • var value = obj.value //得到修改后的值 var data = obj.data //得到所在行所有键值 var regPos = /^\d+(\.\d+)?$/; //非负浮点数 var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)...
  • jqGrid 单元格编辑 自定义下拉选择 动态数据源 通用实现&amp;quot;,讨论了如何用custom edittype实现一个通用的下拉选择编辑方案,本文讨论的是jqGrid单元格编辑的另外两个问题:如何手动结束编辑和如何...
  • VBA操作Excel之设置单元格属性

    千次阅读 2020-10-16 22:19:32
    VBA操作Excel简介 一、VBA读写Excel文件 二、VBA设置单元格属性 参考文档 一、VBA读写Excel文件 VBA简介及打开Excel文件方法见VBA读写Excel文件报错Debug,这里不再赘述,只介绍关闭Excel文件代码如下: fn="D:\test...
  • wps里excel怎么换行在同一单元格

    千次阅读 2020-12-20 14:35:57
    wps里excel怎么换行在同一单元格内相信很多小伙伴在日常办公中都会用到Excel,在同一个单元格内如何才能进行换行操作呢?方法很简单,下面小编就来为大家介绍。方法一:1. 首先,打开电脑上的Excel。2. 进入后,在...
  • 来源:Python中文社区OpenPyXL 使您能够以多种不同的方式设置单元格的样式。样式化单元格会让您的电子表格充满魅力!这将有助于将它们与其他电子表格区分开来。但是请不要过度使用, 如...
  • 使用2.1 普通导出:2.2下拉框限制,多级联动导出:2.3 合并单元格导出2.3 日期时间格式校验导出 前言 需求java导出的Excel要添加指定列的下拉框限制。 提示:以下是本篇文章正文内容,下面案例可供参考 一、引用...
  • 最近需要在项目里集成一个excel检错的功能,对excel里的数据校验错误的单元格数据标记背景色,去年年初做大数据量excel操作的时候选用了easyexcel, 研究了一下里面对单元格的样式定义支持不太友好,但是这个工具用...
  • VBA实现从EXCEL单元格更新或修改PPT对应文本框内容并且不改变格式配置工作开发演示注意点!!!打赏 原创不容易,请不要抄袭! 配置工作 EXCEL 2010版本以上配置 文件-选项-自定义功能区-主选项卡-勾选开发者选项 ...
  • 如何让表格单击可修改单元格,失去焦点即保存修改内容
  • (1)可以给任意的单元格定义一个名称,比如定义某个单元格名称为:testA1,如何给这个名称为“testA1”的单元格赋值。 (2)可以给选中的一块区域(在PageOffice的概念里称这块区域为一个Table)定义一个名称,比如...
  • poi 设置excel 单元格样式

    千次阅读 2018-08-28 14:01:18
    //设置工作表名称 workbook.setSheetName(0,"测试01"); //在工作表中创建行对象 HSSFRow row = sheet.createRow(0); //在第一行创建单元格对象 HSSFCell cell = row.createCell(0); //单元格赋值 cell....
  • Vant Cell 单元格

    2020-12-29 06:25:21
    引入import Vue from 'vue';import { Cell, CellGroup } from 'vant';...CellGroup可以为Cell提供上下外边框单元格大小通过size属性可以控制单元格的大小展示图标通过icon属性在标题左侧展示图标...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,255
精华内容 8,102
关键字:

修改单元格名称框