小编Pyr*_*yro的帖子

使用 Apache POI 更改 Excel 折线图中的数据范围

我想看看是否可以使用 Apache POI 更改折线图中系列的数据范围。

我能够从图表本身中提取系列,但找不到允许我更改数据范围的方法。

XSSFWorkbook workbook = new XSSFWorkbook("C:\\Workbook.xlsx");
Sheet worksheet = workbook.getSheetAt(0);
XSSFDrawing drawing = (XSSFDrawing) worksheet.createDrawingPatriarch();
List<XSSFChart> charts = drawing.getCharts();
for (XSSFChart chart : charts) {
    String title = chart.getTitleText().toString();
    if (title.equals("Z-Acceleration")) {
        CTChart cc = chart.getCTChart();
        CTPlotArea plotArea = cc.getPlotArea();
        CTLineSer[] ccc = plotArea.getLineChartArray()[0].getSerArray();
        for (CTLineSer s : ccc) {
            System.out.println(s.xmlText());
        }
        System.out.println(ccc.length);
    }
}
Run Code Online (Sandbox Code Playgroud)

我打印出 XML 文本以查看它是否确实能够正确地从图表中提取系列并能够找到其标题和数据范围,但无法更改它。

java charts apache-poi xssf

6
推荐指数
1
解决办法
2289
查看次数

在C shmget中查找共享内存的大小

我想知道是否可以获取 C 语言中创建的共享内存段的大小,而shmget无需将该段的大小作为数据的一部分?我正在尝试分配一个动态 int 数组,并且需要在子进程中查找数组的大小。

主要流程:

int sizeOfArray = 3;
int shm = shmget(IPC_PRIVATE, sizeof(int) * sizeOfArray, IPC_CREAT | 0666);
int *a = (int*) shmat(shm, NULL, 0);
a[0] = 0;
a[1] = 1;
a[2] = 2;
if (fork() == 0) {
    char *args[3];
    char shmID[11];
    bzero(shmID, 11);
    intToString(shm, shmID); // custom function that does what the name implies
    args[0] = "slave";
    args[1] = shmID;
    args[2] = NULL;
    execvp("slave", args);
    return -1;
}

wait(NULL);
shmdt((void*) a);
shmctl(shm, IPC_RMID, NULL); …
Run Code Online (Sandbox Code Playgroud)

c shared-memory

2
推荐指数
1
解决办法
3017
查看次数

标签 统计

apache-poi ×1

c ×1

charts ×1

java ×1

shared-memory ×1

xssf ×1