写在两个不同的工作表上,不工作excel 2007
我有一个问题,我需要写一些关于excel的信息。写在两个不同的工作表上,不工作excel 2007
我可以在两个工作表(“工作表”)和另一个工作表(“worksheet2”)之一上正确写入,它不写任何东西,我不知道为什么。所有的过程是相同的,但它不写任何东西。
我把下面我的代码,希望它有助于:
var excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Workbooks.Open(destFile);
Microsoft.Office.Interop.Excel.Worksheet worksheet = excelApp.Worksheets.get_Item(2);
Microsoft.Office.Interop.Excel.Worksheet worksheet2 = excelApp.Worksheets.get_Item(1);
excelApp.Visible = false;
var data = new object[numRows, numColumns];
int contadorMedidas = 0;
//int primeraVez = 0;
for (int i = 1; i <= numRows; i++) // assuming the data starts at 1,1
{
for (int j = 1; j <= numColumns; j++)
{
if (contadorMedidas < contents.Count)
{
worksheet.Cells[i, j] = contents[contadorMedidas];
contadorMedidas++;
}
}
}
//Escribir en la hoja de pautas el nombre y los valores de codigo y plano
//Codigo
worksheet2.Cells[2, 5] = codigo;
//Plano
worksheet2.Cells[3, 4] = plano;
//Trabajador
worksheet2.Cells[6, 2] = cbxWorker.Text;
//Si es BR, hay que añadir un código extra:
if (br)
{
for (int i = 0; i < numRows; i++)
{
worksheet2.Cells[8 + i, 6] = "7525SI-0203-FA";
}
}
excelApp.Quit();
我在你的代码注意的时候它会在worksheet2写,你有一个条件。也许这种情况是错误的,这就是为什么它不写入工作表2。
if (br)
{
//write to worksheet2
}
否则,我用下面的代码,并能够在两个工作表,在同一个Excel工作簿写。 希望这有助于。
//I created a class called ExcelFunctions which has the
//methods OpenExcelFile and AccessSpecificExcelSheet
var excelFunction = new ExcelFunctions();
//Open the Excel file
excelWorkbook = excelFunction.OpenExcelFile(excelApp, excelFilePath);
//Get the sheets
Sheets excelSheets = excelWorkbook.Worksheets;
//Access the first sheet
string sheetName = "Sheet1";
Worksheet activeWorksheet = excelFunction.AccessSpecificExcelSheet(excelSheets, sheetName);
activeWorksheet.Cells[2, 1] = "Write to sheet1";
//Access the second sheet
string sheetName2 = "Sheet2";
activeWorksheet = excelFunction.AccessSpecificExcelSheet(excelSheets, sheetName2);
activeWorksheet.Cells[4, 1] = "Write to sheet2";
这就是我的 “AccessSpecificationExcelSheet” 的方法是这样的:
public Worksheet AccessSpecificExcelSheet(Sheets allExcelSheets, string sheetName)
{
Worksheet selectedWorksheet = allExcelSheets.get_Item(sheetName);
selectedWorksheet.Select();
//Select cell A1 when opening
Range topExcel = selectedWorksheet.get_Range("A1", Type.Missing);
topExcel.Select();
return selectedWorksheet;
}
这就是我的 “OpenExcelFile” 的方法是这样的:
public Workbook OpenExcelFile(Application excelApp, string excelFilePath)
{
Workbook excelWorkbook = excelApp.Workbooks.Open(excelFilePath);
return excelWorkbook;
}
我无法使用OpenExcelFile,为什么? – Imrik
我可以通过“Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(destFile);”但它不起作用,它给出了错误:“Excepciónde HRESULT:0x8002000B(DISP_E_BADINDEX))” – Imrik
@Imrik,对不起,OpenExcelFile方法是我定义的方法。我编辑了上面的内容来显示我的OpenExcelFile方法的功能。 – hackslash47
什么是您的Excel看起来打开时像像这样,它是否有适量的工作表?也许你首先需要添加一个工作表? – Luuklag
我制作了一个有两页和一页的excel的副本。一个叫做“Pauta”,另一个叫做“Medidas”,最后一个叫“Filtros”。 – Imrik