小编Mat*_*don的帖子

通过c#在电子表格中插入表格

我创建了一个读取不同文件的项目,然后使用电子表格将其放入不同的工作表中.我使用了Open office calc电子表格,因此使用以下代码打开一个空白文件:

public XSpreadsheet getSpreadsheet(int nIndex, XComponent xComp)
{
    XSpreadsheets xSheets = ((XSpreadsheetDocument)xComp).getSheets();
    XIndexAccess xSheetsIA = (XIndexAccess)xSheets;
    XSpreadsheet xSheet =(XSpreadsheet)xSheetsIA.getByIndex(nIndex).Value;

    return xSheet;         
}
Run Code Online (Sandbox Code Playgroud)

我打电话给一张表就像这样使用:

XSpreadsheet newSheet = getSpreadsheet(sheetIndex, xComp);
Run Code Online (Sandbox Code Playgroud)

在哪里xComp:

string filePathway = @"file:///c:/temp/blank.ods";  
PropertyValue[] propVals = new PropertyValue[0];
XComponent oCalcuDoc = oDesktop.loadComponentFromURL(filePathway, "_blank", 0, propVals);
Run Code Online (Sandbox Code Playgroud)

但是我的问题是需要使用在运行应用程序之前已经插入电子表格中所需的工作表数来设置文件blank.ods.这并不理想,因为并不总是知道所需的纸张数量.有没有办法从我的应用程序中插入工作表?

任何帮助,将不胜感激.

c# openoffice-calc

8
推荐指数
1
解决办法
1004
查看次数

最佳列宽OpenOffice Calc

我正在将CSV文件中的数据输入OpenOffice电子表格.

此代码在电子表格中获取新工作表:

Public Spreadsheet getSpreadsheet(int sheetIndex, XComponent xComp) 
{ 
  XSpreadsheet xSheets = ((XSpreadsheetDocument)xComp).getSheets();
  XIndexAccess xSheetIA = (XIndexAccess)xSheets;
  XSpreadsheet XSheet = (XSpreadsheet)xSheetsA.getByIndex(sheetIndex).Value; 
  return XSheet;
}
Run Code Online (Sandbox Code Playgroud)

然后,我有一个方法,一次将一个列表输入一个单元格的单元格区域.我希望能够自动设置这些单元格的列大小.这是什么样的

string final DataCell; 
Xspreadsheet newSheet = getSpreadsheet(sheetIndex, xComp);
int numberOfRecords = ( int numberOfColumns * int numberOfRows); 
for(cellNumber = 0; cellNumber < numberOfrecords; cellNumber++)
{
  XCell tableData = newSheet.getCellbyPosition(columnValue, rowValue);
  ((XText)tableData).setString(finalDataCell);
  column Value++; 
  if(columnValue > = numberOfColumns)
  {
    rowVal++ column = 0; 
  } 
}
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后,我找到了功能:

columns.OptimalWidth = Truehttp://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=31292

但我不确定如何使用它.任何人都可以进一步解释这一点,或者想到让细胞自动调整的另一种方法吗?

c# openoffice-calc

3
推荐指数
1
解决办法
1848
查看次数

最后 - 查询,给出错误的结果

我想使用以下查询来查找最后一个招标ID.

FOR EACH tender-table NO-LOCK WHERE tender-table.kco = 1 BY tender-table.id:
DISPLAY  tender-table.id.
END. 
Run Code Online (Sandbox Code Playgroud)

此查询查看所有投标ID,并以升序返回所有id的所有结果.我得到的结果是

1,035 1.036 ...... 1,060 1,061 1,062 1,063 1,064 1,065 1,066

FOR LAST tender-table NO-LOCK WHERE tender-table.kco = 1 BY tender-table.id:
DISPLAY  tender-table.id.
END.
Run Code Online (Sandbox Code Playgroud)

但是,当我使用此查询来查找最后一个ID时,我得到结果,

1061

当我应该看到结果1,066.任何人都可以建议为什么会这样吗?

progress-4gl openedge

3
推荐指数
1
解决办法
4004
查看次数

标签 统计

c# ×2

openoffice-calc ×2

openedge ×1

progress-4gl ×1