精华内容
下载资源
问答
  • 教程1:创建一个简单的XLSX文件

    千次阅读 2021-01-29 12:35:43
    让我们开始使用Python和XlsxWriter模块创建一个简单的Excel电子表格。假设我们有一些要转换为Excel Xlsx文件的每月支出数据:```expenses = (['Rent', 1000],['Gas', 100],['Food', 300],['Gym', 50],)```那么,我们...

    让我们开始使用Python和XlsxWriter模块创建一个简单的Excel电子表格。

    假设我们有一些要转换为Excel Xlsx文件的每月支出数据:

    ```

    expenses = (

    ['Rent', 1000],

    ['Gas', 100],

    ['Food', 300],

    ['Gym', 50],

    )

    ```

    那么,我们可以从如下所示的示例程序开始:

    ```

    import xlsxwriter

    # Create a workbook and add a worksheet.

    workbook = xlsxwriter.Workbook('Expenses01.xlsx')

    worksheet = workbook.add_worksheet()

    # Some data we want to write to the worksheet.

    expenses = (

    ['Rent', 1000],

    ['Gas', 100],

    ['Food', 300],

    ['Gym', 50],

    )

    # Start from the first cell. Rows and columns are zero indexed.

    row = 0

    col = 0

    # Iterate over the data and write it out row by row.

    for item, cost in (expenses):

    worksheet.write(row, col, item)

    worksheet.write(row, col + 1, cost)

    row += 1

    # Write a total using a formula.

    worksheet.write(row, 0, 'Total')

    worksheet.write(row, 1, '=SUM(B1:B4)')

    workbook.close()

    ```

    如果运行上述代码,我们将会得到一个如下所示的Excel电子表格:

    ![](/media//202002/2020-02-05112758562534.png)

    这是一个很简单的示例,但是涉及的步骤涵盖了所有使用XlsxWriter的程序。下面,我们将其分解为单独的部分。

    第一步是导入模块:

    ```

    import xlsxwriter

    ```

    下一步是使用`Workbook()`构造函数创建一个新的工作簿对象。

    `Workbook()`接受一个非可选的参数,也就是我们要创建的Excel文件名:

    ```

    workbook = xlsxwriter.Workbook('Expenses01.xlsx')

    ```

    > **注意**:

    > XlsxWriter只能创建新文件,不能读取或修改Excel文件.

    然后,通过`add_worksheet()`方法使用工作簿对象添加新的工作表 :

    ```

    worksheet = workbook.add_worksheet()

    ```

    默认情况下,Excel电子表格中的工作表名称为Sheet1,Sheet2等等,但我们也可以指定一个工作表名称:

    ```

    worksheet1 = workbook.add_worksheet() # 默认为Sheet1

    worksheet2 = workbook.add_worksheet('Data') # Data

    worksheet3 = workbook.add_worksheet() # 默认为Sheet3

    ```

    然后,我们可以使用工作表对象的`write()`方法写入数据:

    ```

    worksheet.write(row, col, some_data)

    ```

    > **注意**

    在XlsxWriter中,行和列的索引为零。工作表中的第一个单元格A1为(0, 0)。

    因此,在我们的示例中,我们遍历数据并将其写入的代码如下所示:

    ```

    # 遍历数据并逐行写入

    for item, cost in (expenses):

    worksheet.write(row, col, item)

    worksheet.write(row, col + 1, cost)

    row += 1

    ```

    然后,我们在第二列中添加一个公式来计算项目的总数:

    ```

    worksheet.write(row, 1, '=SUM(B1:B4)')

    ```

    最后,我们通过工作表的`close()`方法关闭Excel文件:

    ```

    workbook.close()

    ```

    这样就完成了。现在我们有了一个可以通过Excel和其他电子表格软件读取的xlsx文件。

    在下一节中,我们将看到如何使用XlsxWriter模块添加其他格式和其他Excel功能。

    展开全文
  • java使用Workbook进行excel读取和创建

    千次阅读 2021-02-25 18:36:20
    public static void main(String...a.xls为要读取的excel文件名,不可为xlsx后缀Workbook book = Workbook.getWorkbook(new File("E:\\a.xls"));//获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)Shee...

    public static void main(String[] args) throws Exception {

    //输入流。a.xls为要读取的excel文件名,不可为xlsx后缀

    Workbook book = Workbook.getWorkbook(new File("E:\\a.xls"));

    //获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)

    Sheet sheet = book.getSheet(0);

    //输出流

    WritableWorkbook wwb = Workbook.createWorkbook(new FileOutputStream("E:\\b.xls"));

    //创建第一个工作表对象,名为("Sheet 1)

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

    //单元格对象

    Label label;

    //label里面的样式

    WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);

    WritableCellFormat wcfFC = new WritableCellFormat(wfc);

    //前三行数据,列不用加条件

    for (int i = 0; i < 13; i++) {

    label = new Label(i, 0, sheet.getCell(i, 0).getContents(), wcfFC);

    ws.addCell

    展开全文
  • 首先需要在web项目中导入jxl.jar 包//action中代码public String downloadReport(){String path = System.getProperty("java.io.tmpdir") + "\xlsx"+ (new java.util.Date().getTime());List users=new ArrayList();...

    首先需要在web项目中导入jxl.jar 包

    //action中代码

    public String downloadReport(){

    String path = System.getProperty("java.io.tmpdir") + "\xlsx"+ (new java.util.Date().getTime());

    List users=new ArrayList();//查询结果集

    users.add(new User(1, "屌丝1", 18, "男"));

    users.add(new User(2, "妹子2", 19, "女"));

    users.add(new User(3, "屌丝3", 20, "男"));

    users.add(new User(4, "妹子4", 21, "女"));

    users.add(new User(5, "屌丝5", 22, "男"));

    try {

    createExcel(path,List users);//方法代码在下面

    //下载文件

    response().setContentType("application/x-msdownload;charset=UTF-8"); // 设置响应类型为下载

    response().setCharacterEncoding("UTF-8");//页面乱码问题

    String docName = java.net.URLEncoder.encode("report_case.xls", "UTF-8");//文件名称设置

    response().setHeader("Content-Disposition", "attachment; filename="+ new String(docName.getBytes("UTF-8"), "UTF-8"));

    BufferedInputStream br = new BufferedInputStream(new FileInputStream(path));

    byte[] buf = new byte[1024];

    int len = 0;

    OutputStream out = response().getOutputStream();

    while ((len = br.read(buf)) > 0)

    out.write(buf, 0, len);//把下载的文档写入本地电脑中去

    } catch (IOException e) {

    e.printStackTrace();

    }finally{

    out.close();

    br.close();

    }

    return null;

    }

    //下载调用方法

    /**

    * 设置表格标题和风格

    * @param path

    * @param users

    */

    public static void createExcel(String path,List users){

    try {

    //创建工作薄

    WritableWorkbook workbook = Workbook.createWorkbook(new File(path));

    //创建工作表

    WritableSheet sheet=workbook.createSheet("测试表格", 0);

    //置页眉、页脚

    sheet.setHeader("页眉", "", "第   &P   页,共   &N   页"); // 设置页眉

    sheet.setFooter("", "", "&D   &T"); // 设置页脚

    //设置第几列的的列宽

    sheet.setColumnView(0, 20);

    sheet.setColumnView(1, 20);

    sheet.setColumnView(2, 20);

    sheet.setColumnView(3, 20);

    //指定几种单元格的字体样式

    WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);

    WritableFont BoldFont12 = new WritableFont(WritableFont.ARIAL, 12,WritableFont.BOLD);//加粗12号字体

    WritableFont BoldFont20 = new WritableFont(WritableFont.ARIAL, 20,WritableFont.BOLD);//加粗18号字体

    //用于台头

    WritableCellFormat wcf_head=new WritableCellFormat(BoldFont20);

    wcf_head.setBorder(Border.ALL, BorderLineStyle.THIN);//线条

    wcf_head.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直对齐

    wcf_head.setAlignment(Alignment.CENTRE);//水平对齐

    wcf_head.setWrap(false);//是否换行

    // 用于标题

    WritableCellFormat wcf_title = new WritableCellFormat(BoldFont12);

    wcf_title.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条

    wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐

    wcf_title.setAlignment(Alignment.CENTRE); // 水平对齐

    wcf_title.setWrap(false); // 是否换行

    // 用于正文

    WritableCellFormat wcf_text = new WritableCellFormat(NormalFont);

    wcf_text.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条

    wcf_text.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐

    wcf_text.setAlignment(Alignment.CENTRE); // 水平对齐

    wcf_text.setWrap(false); // 是否换行

    // 用于跨行

    WritableCellFormat wcf_merge = new WritableCellFormat(NormalFont);

    wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条

    wcf_merge.setVerticalAlignment(VerticalAlignment.TOP); // 垂直对齐

    wcf_merge.setAlignment(Alignment.LEFT);

    wcf_merge.setWrap(true); // 是否换行

    sheet.setRowView(0, 800);//设置行高

    sheet.setRowView(1, 500);

    sheet.addCell(new Label(0, 0, "保险信息", wcf_head));

    sheet.mergeCells(0,0,4,0);//合并第一行的第1列到第一行的第4列

    sheet.addCell(new Label(0, 1, "编号", wcf_title));

    sheet.addCell(new Label(1, 1, "姓名", wcf_title));

    sheet.addCell(new Label(2, 1, "年龄",wcf_title));

    sheet.addCell(new Label(3, 1, "性别", wcf_title));

    //把上面缓存中内容写到文件中去  2表示从第几行开始标题除外

    addCellFreezeOrder(2,users,sheet,wcf_text);

    workbook.write();

    workbook.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 把缓存中的数据写到文件当中去

    * @param i

    * @param users

    * @param sheet

    * @param wcf_text

    */

    private static void addCellFreezeOrder(int i, List users,

    WritableSheet sheet, WritableCellFormat wcf_text) {

    WritableFont wcf_font=(WritableFont) wcf_text.getFont();//用于正文、

    //设置文字格式类型按照文本格式输出

    WritableCellFormat wcf_numberformat=new WritableCellFormat(wcf_font,NumberFormats.TEXT);

    try {

    wcf_numberformat.setBorder(Border.ALL, BorderLineStyle.THIN);

    wcf_numberformat.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐

    wcf_numberformat.setAlignment(Alignment.LEFT); // 水平对齐

    wcf_numberformat.setWrap(false); // 是否换行

    for(User s:users){

    sheet.addCell(new Label(0,i,s.getSequen()+"",wcf_text));

    sheet.addCell(new Label(1,i,s.getName(),wcf_text));

    sheet.addCell(new Label(2,i,s.getAge()+"",wcf_text));

    sheet.addCell(new Label(3,i,s.getSex(),wcf_text));

    i++;

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    //实体类

    class User{

    private int sequen;

    private String name;

    private int age;

    private String sex;

    public User(int sequen, String name, int age, String sex) {

    super();

    this.sequen = sequen;

    this.name = name;

    this.age = age;

    this.sex = sex;

    }

    public int getSequen() {

    return sequen;

    }

    public void setSequen(int sequen) {

    this.sequen = sequen;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    public String getSex() {

    return sex;

    }

    public void setSex(String sex) {

    this.sex = sex;

    }

    }

    展开全文
  • ',bold) worksheet.write(2,0,32) worksheet.write(3,0,35.5) worksheet.write(4,0,'=sum(a3:a4)') workbook.close() 程序运行后,生成了文件名为demo.xlsx的文件,打开后的内容如下: 通过编辑操作,创建了指定名称...

    之前操作excel使用过其他的方式,针对excel的写入来说,使用过xlwt模块,也直接使用过win32com接口。如果说哪个最能够发挥excel的威力,那么肯定是win32com接口实现的方式,然而这种方式需要的是office软件支持。

    至于xlwt,我觉得我们平时用到的功能基本上都有了,通常这个基本就能够满足我个人的要求。

    今天使用了一下xlsxwriter模块,暂时没有找到什么比较特殊的功能。当然,我自己也仅仅是照搬了一个demo程序而已。先展示一下程序代码:

    #!/usr/bin/python

    # -*- coding: cp936 -*-

    import xlsxwriter

    workbook = xlsxwriter.workbook('demo.xlsx')

    worksheet = workbook.add_worksheet('demo')

    worksheet.set_column('a:a',20)

    bold = workbook.add_format({'bold':true})

    worksheet.write('a1','hello')

    worksheet.write('a2','world',bold)

    worksheet.write('b2',u'你好!',bold)

    worksheet.write(2,0,32)

    worksheet.write(3,0,35.5)

    worksheet.write(4,0,'=sum(a3:a4)')

    workbook.close()

    程序运行后,生成了文件名为demo.xlsx的文件,打开后的内容如下:

    a5b41f7791dcf81c9abe3eaf58b50b8f.png

    通过编辑操作,创建了指定名称的sheet,同时写入了相关的信息。还调用了一个求和的方法计算了两个单元格的数值之和。

    相比之前使用的xlwt模块,xlsxwriter模块要大得多。从庞大的体积大致能够猜到这个模块的功能应该是要更强大一些。从文件的格式支持上就可以看出一点端倪,这个模块支持xlwt并不支持的xlsx类型格式的文件。至于其它的功能,后续真可以了解下然后再做一次更为细致的学习。

    以上这篇使用实现xlsxwriter创建excel文件并编辑就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

    希望与广大网友互动??

    点此进行留言吧!

    展开全文
  • //数据处理和workbook生成放到工具类和业务逻辑里去 Workbook wkb =demoService.getFileStream(logIds); wkb.write(output); output.close(); } 要注意这种写法是需要前端处理的,前后端分离的项目注意要到有前端的...
  • 通过openpyxl模块创建workbook时,无需本地事先创建好excel,它会直接创建一个新的excel文件 创建workbook时,会至少包含一个worksheet 注意:openpyxl模块只支持.xlsx,.xlsm,.xltx,.xltm格式 使用示例: 导入...
  • 我正在尝试用POI读取大型xlsx文件的第一次测试,但是使用小文件进行简单测试我无法显示单元格的值.有人可以告诉我我的错误是什么.欢迎提出所有建议.谢谢.Test.java:import java.io.File;import java.io....
  • 具体的官方文档可见:http://xlsxwriter.readthedocs.io/通过pip安装xlsxwriterpip... 首先创建一个excel的文档workbook = xlsxwriter.Workbook(dir)2. 在文档中创建表table_name = 'sheet1'worksheet = workbook.ad...
  • xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但最后文件无法直接打开,会报错)。
  • } } }/*** 创建Excel(xlsx) *@paramfileDir 文件名称及地址 *@paramsheetName sheet的名称 *@paramtitleRow 表头*/ public static voidcreateExcelXlsx(String fileDir, String sheetName, String titleRow[]){ }...
  • 使用python3.9 创建Excel表格时,出现错误。 Traceback (most recent call last): ... workbook = xlsxwriter.workbook('demo.xlsx') TypeError: 'module' object is not callable Process fini...
  • poi导出xlsx(Excel2007)

    2021-03-04 06:58:36
    Excel2007以上版本导出简单实现使用Apache POI导出Excel(.xlsx)Excel <=2003 数据限制,行(65536)列(256)Excel =2007 数据限制,行(1048576)列(16384)package exportexcel;import java.io.File;import java.io....
  • 背景 最近在使用electon写一个桌面程序,需要对数据进行excel导出操作,这里选择使用 exceljs 来完成这...创建工作簿并设置工作簿属性 const workbook = new ExcelJS.Workbook(); workbook.creator = 'Me'; workbook.l
  • 1、创建一个空白的xls文件Step1:先引入库NPOI.dll文件Step2:①:实例化一个workbook,实为在内存表中创建一个xls文件NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();...
  • 生成Workbook5.修改样式6.导出三、转换函数四、参考资料 一、需要的开源包 SheetJS的 js-xlsx,可以去github上下载源码:https://github.com/SheetJS/js-xlsx ,全文件xlsx.full.min.js或者核心文件xlsx.core.min....
  • 这次需要自己写个自用的Excel导出工具:照着POI的官方文档新建一个Excel文件。...FileOutputStreamfileOut=newFileOutputStream("workbook.xlsx");wb.write(fileOut);fileOut.close();Workbook wb = new XSSFWor...
  • 其中最主要的区别在于jxl不支持.xlsx,而poi支持.xlsx 这里介绍的使用poi方式(XSSFWorkbook),实际上poi提供了HSSFWorkbook和XSSFWorkbook两个实现类。区别在于HSSFWorkbook是针对.xls文件,XSSFWorkbook是针对....
  • openpyxl 遍历值写入xlsx

    2021-11-12 16:09:27
    \pythonR\学习\2020-11-01\test.xlsx' # .xlsx文件,路径 outwb = openpyxl.load_workbook(file) # 读取.xlsx文件 work_sheet = outwb['Sheet1'] #创建工作簿的时候,不能够同时写入数据,所以我把工作簿创建好,...
  • 前言 因产品不当人子,提出要前端将页面表格导出成excel的需求。故想到使用xlsx.js去实现。...创建js文件 /** * * @param {*} id 导出表格的id 或 class * @param {*} title 表格标题 */ export ..
  • # Workbook()方法 将会在当前文件夹新建一个x1.xlsx,如果存在会覆盖. wb = openpyxl.Workbook('x1.xlsx') # save()方法 将会保存,如果不保存,将不会保存之前wb的所有存在,包括新建失败. wb.save('x1.xlsx') ...
  • 在作以前一个项目的时候,须要有生成excel表格的功能,在网上查询一番后,发现不少人都推荐Sheetjs的xlsx.js这款工具,本身使用了一下,感受也不错,上手简单,功能结构清晰。所以,在这里就我本身使用到的功能部分...
  • try { outputStream = new FileOutputStream(filePath+"kjh6_"+month+".xlsx"); workbook.write(outputStream); outputStream.close(); BocoLog.info(this, "75ftp数据文件推送开始"); } catch (Exception e) { e....
  • 这应该是一个比较全的示例了...1、不包含单元格合并的写excel/*** excel导出到输出流* 谁调用谁负责关闭输出流* @param os 输出流* @param excelExtName excel文件的扩展名,支持xls和xlsx,不带点号* @param data* ...
  • 一、现在普遍使用的Excel文档有xls以及xlsx这两种Excel文档,其中xls格式的Excel文档又分为5.0/95工作簿以及97-2003工作簿这两种。需要注意的是,由于5.0/95工作簿的版本太低,现在的POI文档不再支持这种...
  • <script type="text/javascript" src="./xlsx.core.min.js"></script>
  • } /** * read the Excel 2010 .xlsx * @param file * @return * @throws IOException */ @SuppressWarnings("deprecation") public static List> readXlsx(File file){ List> list = new ArrayList>(); // IO流读取...
  • js-xlsx使用

    2021-06-16 05:19:26
    1.js-xlsx 介绍由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,519
精华内容 9,807
关键字:

workbook创建xlsx