将数据写入CSV文件

时间:2020-08-07 07:37:53

标签: java excel maven

我想将数据写入一个csv文件,但是那行不通。我已经插入了apache.poi依赖项。每当我尝试运行此命令时,我只会收到错误消息“由以下原因引起:java.lang.RuntimeException:无法编译的源代码-包org.apache.poi.ss.usermodel在main.WritingCSV中不存在。(WritingCSV.java :4)”

我的代码:

SELECT t.ProductCategory, t.ProductSubCategory, u.Region, u.[Total Orders],
    u.[Total Orders] / SUM(u.[Total Orders]) OVER (PARTITION BY t.ProductCategory) as [Percentage of Total]
FROM dbo.OriginalTable t
CROSS APPLY
    (SELECT 'North America' as Region, [Total Orders Placed in North America] as TotalOrders
     UNION ALL
     SELECT 'South America' as Region, [Total Orders Placed in South America] as [Total Orders]
     UNION ALL
     SELECT 'North Africa' as Region, [Total Orders Placed in North Africa] as [Total Orders]
     UNION ALL
     SELECT 'South Africa' as Region, [Total Orders Placed in South Africa] as [Total Orders]
    ) u
;

我的pom

package main;
import java.io.*;
import java.util.*;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class WritingCSV {
    
    public void writing()
    {
        //Create blank workbook
      XSSFWorkbook workbook = new XSSFWorkbook();
      
      //Create a blank sheet
      XSSFSheet spreadsheet = workbook.createSheet( " Employee Info ");

      //Create row object
      XSSFRow row;

      //This data needs to be written (Object[])
      Map < String, Object[] > empinfo = new TreeMap < String, Object[] >();
      empinfo.put( "1", new Object[] {
         "EMP ID", "EMP NAME", "DESIGNATION" });
      

      //Iterate over data and write to sheet
      Set < String > keyid = empinfo.keySet();
      int rowid = 0;
      
      for (String key : keyid) {
         row = spreadsheet.createRow(rowid++);
         Object [] objectArr = empinfo.get(key);
         int cellid = 0;
         
         for (Object obj : objectArr){
            Cell cell = row.createCell(cellid++);
            cell.setCellValue((String)obj);
         }
      }
      //Write the workbook in file system
      FileOutputStream out = new FileOutputStream(
         new File("C:/poiexcel/Writesheet.xlsx"));
      
      workbook.write(out);
      out.close();
      System.out.println("Writesheet.xlsx written successfully");
    }
}

1 个答案:

答案 0 :(得分:1)

尝试将dependency标签包裹在dependencies标签中,如下所示:

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