SwethaVijayan Ответов: 2

Как мы можем записать определенную строку excel из C# , а не в ячейку всю строку


Как мы можем записать определенную строку excel из c#, а не в ячейку всю строку целиком? я пытался писать в ячейку, но в строку мне не удалось написать

Что я уже пробовал:

private void button2_Click(object sender, EventArgs e)
        {
            MyExcel.Application excelApp;
            MyExcel.Workbook excelWorkBook;
            MyExcel.Worksheet excelWorkSheet;
            MyExcel.Range range;

            string str;
            int rowCount = 0;
            int colCount = 0;

            excelApp = new MyExcel.Application();
            excelWorkBook = excelApp.Workbooks.Open("e:\\SampleFile.xls", 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            excelWorkSheet = (MyExcel.Worksheet)excelWorkBook.Worksheets.get_Item(1);
 

            range = excelWorkSheet.UsedRange;

            for (rowCount = 1; rowCount <= range.Rows.Count; rowCount++)
            {
                for (colCount = 1; colCount <= range.Columns.Count; colCount++)
                {
                    str = (string)(range.Cells[rowCount, colCount] as MyExcel.Range).Value2;
                    MessageBox.Show(str);
                }
            }
            excelWorkSheet.Cells[rowCount, 1] = "new name";
            excelWorkBook.Save();
            excelWorkBook.Close();
            excelApp.Quit();

            releaseObject(excelWorkSheet);
            releaseObject(excelWorkBook);
            releaseObject(excelApp);
        }

SwethaVijayan

следующий ответ решите мою проблему plese пройдите через этот код если кто то столкнется с этой проблемой

2 Ответов

Рейтинг:
4

SwethaVijayan

private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
private static Microsoft.Office.Interop.Excel.Worksheet mWSheet1;
private static Microsoft.Office.Interop.Excel.Application oXL;
public static void ReadExistingExcel()
{
   string path = @"C:\Tool\Reports1.xls";
   oXL = new Microsoft.Office.Interop.Excel.Application();
   oXL.Visible = true;
   oXL.DisplayAlerts = false;
   mWorkBook = oXL.Workbooks.Open(path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
   //Get all the sheets in the workbook
  mWorkSheets = mWorkBook.Worksheets;
   //Get the allready exists sheet
   mWSheet1 = (Microsoft.Office.Interop.Excel.Worksheet)mWorkSheets.get_Item("Sheet1");
   Microsoft.Office.Interop.Excel.Range range= mWSheet1.UsedRange;
   int colCount = range.Columns.Count;
   int rowCount= range.Rows.Count;
   for (int index = 1; index < 15; index++)
   {
      mWSheet1.Cells[rowCount + index, 1] = rowCount +index;
      mWSheet1.Cells[rowCount + index, 2] = "New Item"+index;
   }
   mWorkBook.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
   Missing.Value, Missing.Value, Missing.Value,    Missing.Value,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
   Missing.Value, Missing.Value, Missing.Value,
   Missing.Value, Missing.Value);
   mWorkBook.Close(Missing.Value, Missing.Value, Missing.Value);
   mWSheet1 = null;
   mWorkBook = null;
   oXL.Quit();
   GC.WaitForPendingFinalizers();
   GC.Collect();
   GC.WaitForPendingFinalizers();
   GC.Collect();
} 


Рейтинг:
0

Maciej Los

Заменить этот:

for (rowCount = 1; rowCount <= range.Rows.Count; rowCount++)
{
    for (colCount = 1; colCount <= range.Columns.Count; colCount++)
    {
        str = (string)(range.Cells[rowCount, colCount] as MyExcel.Range).Value2;
        MessageBox.Show(str);
    }
}

с:
int r = 1; 
int rowCount = 10;
int c = 1; 
int colCount = 10;
//multiplication table
for (r = 1; r <= rowCount; r++)
{
    for (c = 1; c <= colCount; c++)
    {
        range.Cells[rowCount, colCount].Value = r*c;
        //MessageBox.Show(range.Cells[rowCount, colCount].Value);
    }
}


SwethaVijayan

ya это corret таким образом, чтобы вставить значение в ячейку