Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Redis DB值写入excel工作表?_Java_Excel_Redis_Apache Poi_Jedis - Fatal编程技术网

Java 如何将Redis DB值写入excel工作表?

Java 如何将Redis DB值写入excel工作表?,java,excel,redis,apache-poi,jedis,Java,Excel,Redis,Apache Poi,Jedis,我使用的是Redis数据库管理器,客户是Jedis 我已经使用java执行了下面两个查询 System.out.println("Alphabets:"+Jedis.smembers("SET Name"); System.out.println("Books:"+Jedis.hgetall("key","value"); 产出如下: 1.第一次打印语句输出 字母表:[A,B,C,D,] 2.第二次打印语句输出 Books:Cookbook=[Vishnu,JavaBook=Balaguru

我使用的是Redis数据库管理器,客户是Jedis

我已经使用java执行了下面两个查询

System.out.println("Alphabets:"+Jedis.smembers("SET Name");

System.out.println("Books:"+Jedis.hgetall("key","value");
产出如下:

1.第一次打印语句输出

字母表:[A,B,C,D,]

2.第二次打印语句输出

Books:Cookbook=[Vishnu,JavaBook=Balaguru,Macbook=Steve]

在这里,我想用下面的格式将上述输出值写入单个excel表格

标题:字母表列表

没有字母表

  • A
  • B
  • C
  • D
  • 标题:书籍列表

    不,书名。图书作者

  • 食谱。毗湿奴
  • JavaBook。巴拉古鲁
  • MacBook史蒂夫
  • 字母表是表中的值

    Book Name是键,BookAuthor是第二个Print语句输出的值

    我已经看过很多教程从数组中获取值,并使用ApachePOI动态写入excel工作表。但是我得到的结果在这里看起来不像数组

    每次我在结果中获得更多值时,是否有任何方法可以动态写入excel

    我的问题正是如何将打印的输出值传递到excel对象并动态写入excel

    请在这方面帮助我


    提前感谢您的帮助。

    您可以使用Apache POI或Jasper Reports来完成此操作

    阿帕奇POI 对于本例,将其另存为
    Worksheet.jrxml
    ,但记住路径,我们将在下一步中使用它

    对于Java实现:

    package q46617008;
    
    import java.nio.file.Files;
    import java.nio.file.StandardOpenOption;
    import java.util.HashMap;
    import java.util.Locale;
    import java.util.Map;
    
    import net.sf.jasperreports.engine.JRDataSource;
    import net.sf.jasperreports.engine.JREmptyDataSource;
    import net.sf.jasperreports.engine.JRParameter;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperExportManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.export.JRPdfExporter;
    import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
    import net.sf.jasperreports.export.SimpleExporterInput;
    import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
    
    public class JasperExample
    {
    
        private Map< String, Object > parameters;
    
        private String filePath = "C:\\Path\\To\\Your\\Worksheet.jrxml";
    
        public JasperExample( ) {
    
            parameters = new HashMap<>( );
            // Define your locale or set it as a parameter
            parameters.put( JRParameter.REPORT_LOCALE, new Locale( "pt", "BR" ) );
            parameters.put( "Alphabets", WorksheetExample.alphabets );
            parameters.put( "Books", WorksheetExample.books );
        }
    
        public void exportPDF( WorksheetExample w ) throws Exception
        {
    
            JRDataSource reportDataSource = new JREmptyDataSource( 1 );
    
            JasperReport report = JasperCompileManager.compileReport( filePath );
    
            JasperPrint jasperPrint = JasperFillManager.fillReport( report, parameters, reportDataSource );
    
            JRPdfExporter exporter = new JRPdfExporter( );
            exporter.setExporterInput( new SimpleExporterInput( jasperPrint ) );
            exporter.setExporterOutput( new SimpleOutputStreamExporterOutput( Files.newOutputStream( w.file, StandardOpenOption.CREATE ) ) );
    
            exporter.exportReport( );
        }
    
        public void exportXLSX( WorksheetExample w ) throws Exception
        {
    
            JRDataSource reportDataSource = new JREmptyDataSource( 1 );
    
            JasperReport report = JasperCompileManager.compileReport( filePath );
    
            JasperPrint jasperPrint = JasperFillManager.fillReport( report, parameters, reportDataSource );
    
            JRXlsxExporter exporter = new JRXlsxExporter( );
            exporter.setExporterInput( new SimpleExporterInput( jasperPrint ) );
            exporter.setExporterOutput( new SimpleOutputStreamExporterOutput( Files.newOutputStream( w.file, StandardOpenOption.CREATE ) ) );
    
            exporter.exportReport( );
        }
    
    }
    
    包装q46617008;
    导入java.nio.file.Files;
    导入java.nio.file.StandardOpenOption;
    导入java.util.HashMap;
    导入java.util.Locale;
    导入java.util.Map;
    导入net.sf.jasperreports.engine.JRDataSource;
    导入net.sf.jasperreports.engine.JREmptyDataSource;
    导入net.sf.jasperreports.engine.jr参数;
    导入net.sf.jasperreports.engine.JasperCompileManager;
    导入net.sf.jasperreports.engine.jaspeexportmanager;
    导入net.sf.jasperreports.engine.JasperFillManager;
    导入net.sf.jasperreports.engine.JasperPrint;
    导入net.sf.jasperreports.engine.JasperReport;
    导入net.sf.jasperreports.engine.export.JRPdfExporter;
    导入net.sf.jasperreports.engine.export.ooxml.jrxlsxporter;
    导入net.sf.jasperreports.export.SimpleExporterInput;
    导入net.sf.jasperreports.export.SimpleOutputStreamExportRoutPut;
    公共类示例
    {
    私有映射<字符串,对象>参数;
    私有字符串filePath=“C:\\Path\\To\\Your\\sheet.jrxml”;
    公共雅思范例(){
    parameters=newhashmap();
    //定义区域设置或将其设置为参数
    parameters.put(jrparmeter.REPORT_LOCALE,新LOCALE(“pt”、“BR”));
    参数.put(“字母表”,工作表示例.Alphabets);
    参数.put(“Books”,WorksheetExample.Books);
    }
    public void exportPDF(工作表示例w)引发异常
    {
    JRDataSource reportDataSource=新的JREPTYDATASURCE(1);
    JasperReport report=jaspecompilemanager.compileReport(文件路径);
    JasperPrint JasperPrint=JasperFillManager.fillReport(报表、参数、报表数据源);
    JRPdfExporter=newjrpdfexporter();
    exporter.setExporterInput(新的SimpleExporterInput(jasperPrint));
    exporter.setExporterOutput(新的SimpleOutputStreamExportRoutPut(Files.newOutputStream(w.file,StandardOpenOption.CREATE));
    出口商。出口报告();
    }
    public void exportXLSX(工作表示例w)引发异常
    {
    JRDataSource reportDataSource=新的JREPTYDATASURCE(1);
    JasperReport report=jaspecompilemanager.compileReport(文件路径);
    JasperPrint JasperPrint=JasperFillManager.fillReport(报表、参数、报表数据源);
    JRXlsxExporter=新的JRXlsxExporter();
    exporter.setExporterInput(新的SimpleExporterInput(jasperPrint));
    exporter.setExporterOutput(新的SimpleOutputStreamExportRoutPut(Files.newOutputStream(w.file,StandardOpenOption.CREATE));
    出口商。出口报告();
    }
    }
    
    结果将类似于:

    在左侧,您可以看到XLSX输出。右边是PDF版本

    当然,还有大量的优化空间。
    例如,您可以保存已编译的JRXML并加载它,这比每次需要时编译它要快得多


    运行它 如果您需要一个简单的类来运行这两个示例,请使用以下一个:

    package q46617008;
    
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Map;
    import java.util.Set;
    
    public class WorksheetExample
    {
    
        public static final Set< String > alphabets = new HashSet<>( );
    
        public static final Map< String, String > books = new HashMap<>( );
    
        public final Path file;
    
        public WorksheetExample( String fileName ) {
            file = Paths.get( "C:", "Path", "To", "Your", fileName );
        }
    
        static
        {
            alphabets.add( "A" );
            alphabets.add( "B" );
            alphabets.add( "C" );
            alphabets.add( "D" );
    
            books.put( "Cookbook", "Vishnu" );
            books.put( "JavaBook", "Balaguru" );
            books.put( "MacBook", "Steve" );
        }
    
        public static void main( String[ ] args ) throws Exception
        {
    
            WorksheetExample w;
    
            w = new WorksheetExample( "ApacheExample.xlsx" );
            new ApacheExample( ).build( w );
    
            w = new WorksheetExample( "JasperExample.xlsx" );
            new JasperExample( ).exportXLSX( w );
    
            w = new WorksheetExample( "JasperExample.pdf" );
            new JasperExample( ).exportPDF( w );
        }
    
    }
    
    包装q46617008;
    导入java.nio.file.Path;
    导入java.nio.file.path;
    导入java.util.Date;
    导入java.util.HashMap;
    导入java.util.HashSet;
    导入java.util.Map;
    导入java.util.Set;
    公共类工作表示例
    {
    公共静态final Setalphabets=newhashset();
    公共静态最终映射books=newhashmap();
    公共最终路径文件;
    公共工作表示例(字符串文件名){
    file=Path.get(“C:”,“Path”,“To”,“Your”,fileName);
    }
    静止的
    {
    字母表。添加(“A”);
    字母表。添加(“B”);
    字母表。添加(“C”);
    字母表。添加(“D”);
    书。放(“烹饪书”、“毗湿奴”);
    books.put(“JavaBook”、“Balaguru”);
    books.put(“MacBook”、“Steve”);
    }
    公共静态void main(字符串[]args)引发异常
    {
    工作表样本w;
    w=新工作表样本(“ApacheExample.xlsx”);
    新的ApacheExample().build(w);
    w=新工作表样本(“JasperExample.xlsx”);
    新JasperExample().exportXLSX(w);
    w=新工作表样本(“JasperExample.pdf”);
    新JasperExample().exportPDF(w);
    }
    }
    
    您可以使用ApachePOI或Jasper报告来完成

    阿帕奇POI 对于本例,将其另存为
    Worksheet.jrxml
    package q46617008;
    
    import java.nio.file.Files;
    import java.nio.file.StandardOpenOption;
    import java.util.HashMap;
    import java.util.Locale;
    import java.util.Map;
    
    import net.sf.jasperreports.engine.JRDataSource;
    import net.sf.jasperreports.engine.JREmptyDataSource;
    import net.sf.jasperreports.engine.JRParameter;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperExportManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.export.JRPdfExporter;
    import net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
    import net.sf.jasperreports.export.SimpleExporterInput;
    import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
    
    public class JasperExample
    {
    
        private Map< String, Object > parameters;
    
        private String filePath = "C:\\Path\\To\\Your\\Worksheet.jrxml";
    
        public JasperExample( ) {
    
            parameters = new HashMap<>( );
            // Define your locale or set it as a parameter
            parameters.put( JRParameter.REPORT_LOCALE, new Locale( "pt", "BR" ) );
            parameters.put( "Alphabets", WorksheetExample.alphabets );
            parameters.put( "Books", WorksheetExample.books );
        }
    
        public void exportPDF( WorksheetExample w ) throws Exception
        {
    
            JRDataSource reportDataSource = new JREmptyDataSource( 1 );
    
            JasperReport report = JasperCompileManager.compileReport( filePath );
    
            JasperPrint jasperPrint = JasperFillManager.fillReport( report, parameters, reportDataSource );
    
            JRPdfExporter exporter = new JRPdfExporter( );
            exporter.setExporterInput( new SimpleExporterInput( jasperPrint ) );
            exporter.setExporterOutput( new SimpleOutputStreamExporterOutput( Files.newOutputStream( w.file, StandardOpenOption.CREATE ) ) );
    
            exporter.exportReport( );
        }
    
        public void exportXLSX( WorksheetExample w ) throws Exception
        {
    
            JRDataSource reportDataSource = new JREmptyDataSource( 1 );
    
            JasperReport report = JasperCompileManager.compileReport( filePath );
    
            JasperPrint jasperPrint = JasperFillManager.fillReport( report, parameters, reportDataSource );
    
            JRXlsxExporter exporter = new JRXlsxExporter( );
            exporter.setExporterInput( new SimpleExporterInput( jasperPrint ) );
            exporter.setExporterOutput( new SimpleOutputStreamExporterOutput( Files.newOutputStream( w.file, StandardOpenOption.CREATE ) ) );
    
            exporter.exportReport( );
        }
    
    }
    
    package q46617008;
    
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Map;
    import java.util.Set;
    
    public class WorksheetExample
    {
    
        public static final Set< String > alphabets = new HashSet<>( );
    
        public static final Map< String, String > books = new HashMap<>( );
    
        public final Path file;
    
        public WorksheetExample( String fileName ) {
            file = Paths.get( "C:", "Path", "To", "Your", fileName );
        }
    
        static
        {
            alphabets.add( "A" );
            alphabets.add( "B" );
            alphabets.add( "C" );
            alphabets.add( "D" );
    
            books.put( "Cookbook", "Vishnu" );
            books.put( "JavaBook", "Balaguru" );
            books.put( "MacBook", "Steve" );
        }
    
        public static void main( String[ ] args ) throws Exception
        {
    
            WorksheetExample w;
    
            w = new WorksheetExample( "ApacheExample.xlsx" );
            new ApacheExample( ).build( w );
    
            w = new WorksheetExample( "JasperExample.xlsx" );
            new JasperExample( ).exportXLSX( w );
    
            w = new WorksheetExample( "JasperExample.pdf" );
            new JasperExample( ).exportPDF( w );
        }
    
    }