我已经尝试了下面的代码段。
try {
Sheet sheet = workbook.getSheetAt(0);
workbook.setActiveSheet(0);
Cell cell = sheet.getRow(0).getCell(0);
cell.setAsActiveCell();
sheet.setActiveCell(cell.getAddress());
sheet.showInPane(0, 0);
} catch (IllegalArgumentException e) {
LOGGER.error("Failed to set active sheet and cell.", e);
}
我也看过这个问题。这个解决办法似乎对我不起作用。有谁能帮我一下吗?
附注:我使用的是apache poi版本3.15。
public void setActiveCell(Workbook workbook, int sheetIndex, int row, int column) {
Sheet sheet = workbook.getSheetAt(sheetIndex);
CellAddress cellAddress = new CellAddress(row, column);
sheet.createFreezePane(2, 0);
((XSSFSheet) sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).getPane()
.setTopLeftCell("C1");
((XSSFSheet) sheet).setActiveCell(cellAddress);
// ((XSSFSheet) sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0)
// .setTopLeftCell(cellAddress.formatAsString());
// ((XSSFSheet) sheet).setActiveCell(cellAddress);
}
public void setActiveCell(Workbook workbook, int sheetIndex, int row, int column) {
Sheet sheet = workbook.getSheetAt(sheetIndex);
CellAddress cellAddress = new CellAddress(row, column);
sheet.createFreezePane(2, 0);
((XSSFSheet) sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).getPane()
.setTopLeftCell("C1");
((XSSFSheet) sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0)
.setTopLeftCell(cellAddress.formatAsString());
}
不幸的是,xssfsheet.showinpane
存在错误。
以下对我有效:
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
class TopLeftCell {
public static void main(String[] args) throws Exception{
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).setTopLeftCell("D10");
((XSSFSheet)sheet).setActiveCell(new CellAddress("E11"));
wb.write(new FileOutputStream("TopLeftCell.xlsx"));
wb.close();
}
}
它从基本的低级对象中使用settopleftcell
。
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
class TopLeftCell {
public static void main(String[] args) throws Exception{
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
/*
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).setTopLeftCell("D10");
((XSSFSheet)sheet).setActiveCell(new CellAddress("E11"));
*/
sheet.createFreezePane(2, 2); //C3 is top left cell of the scrollable pane
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).getPane().setTopLeftCell("C3");
((XSSFSheet)sheet).setActiveCell(new CellAddress("A1"));
wb.write(new FileOutputStream("TopLeftCell.xlsx"));
wb.close();
}
}
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
class TopLeftCell {
public static void main(String[] args) throws Exception{
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
sheet.createFreezePane(2, 0); //C1 is top left cell of the scrollable pane.
//But if the fixed pane contains no rows, as in this example, then setting the row in
//getPane().setTopLeftCell is meaningless. Then the top row must be set in the SheetView.
//Example: Row 6 shall be the top row:
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).setTopLeftCell("A6");
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).getPane().setTopLeftCell("C1");
((XSSFSheet)sheet).setActiveCell(new CellAddress("C6"));
wb.write(new FileOutputStream("TopLeftCell.xlsx"));
wb.close();
}
}
如何使用Apache POI将文本/图像写入特定的合并单元格。特定单元格意味着,我直接将文本或图像写入B3: D7。下面的代码是每个索引的手动代码,而不是单元格的特定名称和数量。我想通过单元格名称和编号放置。
问题内容: 我正在使用POI生成Excel文件。我需要为工作表中的特定单元格添加边框。 我该怎么做? 问题答案: 以单元格中使用的样式设置边框即可完成此操作。例:
我需要一个表格,第一行和第二行的单元格合并在一起。 大概是这样的: 桌子的图片(我不能张贴图片)http://i.stack.imgur.com/dAO6j.png 我一直在复习与本主题相关的所有问题,并找到了一些将网格跨度应用于单元的答案,但我找不到真正的解决方案。 以下是我从谷歌和本网站获得的示例代码: 我从这段代码中得到的信息如下: 我试图用
有人知道从工作簿中的每个工作表中提取某个单元格值的命令吗?或者我可以写一个简单的宏?
在谷歌搜索StackOverflow之后,我还没有找到与这个问题相关的地方。目前我可以将空白单元格读取为空,但一次只能读取一个单元格。所以我必须写这样的东西: 这对我来说不太好,因为我对重复感到不满。我们可以设置返回?
问题内容: 使用Python,我需要在给定的Excel工作表单元格中找到所有粗体或斜体的子字符串。 ..但该解决方案不适用于我,因为我无法假定单元格中 所有 内容的格式 都 相同。单个单元格中的值如下所示: 1.一些粗体文本 一些常规文本。 一些斜体文字 。 有没有一种方法可以使用xlrd(或任何其他Python Excel模块)在单元格中查找字符范围的格式? 问题答案: 感谢@Vyassa提供所