EM_Y Ответов: 1

Я хочу, чтобы преобразовать этот код spire.xls в нормальном формате Excel.приложения с помощью WPF


этот код ищет и получает данные из excelfileSource и сохраняет их во втором excelfileDestination ;; я хочу преобразовать этот код из использования spire.xls к нормальному Excel.Метод приложения .

это мой код, использующий Spire.xls :

  public void myCodeSpire ()
{
           //excel File Destination
           workbook newBook = new Workbook();    
           newBook.LoadFromFile("ExcelFileDestination.xls", ExcelVersion.Version97to2003);
           Worksheet newSheet = newBook.Worksheets[0];
           //excel File Source
           Workbook workbook = new Workbook();   
           workbook.LoadFromFile(ExcelFileSource.xls, ExcelVersion.Version97to2003);
           Worksheet sheet = workbook.Worksheets[2];


        foreach (CellRange range in sheet.Columns[0])
              {
                if (range.Text == KeySearch)
                  {
          CellRange sourceRange = sheet.Range[range.Row, 5, range.Row + 2, 7];
          CellRange destRange = newSheet.Range[34, 3, 36, 5];
          sheet.Copy(sourceRange, destRange,true);


          sourceRange = sheet.Range[range.Row, 9, range.Row + 2, 11];
          destRange = newSheet.Range[34, 6, 36, 8];
          sheet.Copy(sourceRange, destRange, true);
                   

           sourceRange = sheet.Range[range.Row, 13, range.Row + 2, 13];
           destRange = newSheet.Range[34, 9, 36, 9];
           sheet.Copy(sourceRange, destRange, true);

                 
            sourceRange = sheet.Range[range.Row, 15, range.Row + 2, 15];
            destRange = newSheet.Range[34, 10, 36, 10];
             sheet.Copy(sourceRange, destRange, true);

                  
                   }
              }

      newSheet.Range["C34:J36"].NumberFormat = "0.000";
      newSheet.Range["C34:J36"].Borders.LineStyle = LineStyleType.Thin;
      newSheet.Range["C34:J36"].Borders.Color =System.Drawing.Color.Black; 

      newSheet.Range["C34:J36"].Border[BordersLineType.DiagonalDown].LineStyle= LineStyleType.None;

      newSheet.Range["C34:J36"].Borders[BordersLineType.DiagonalUp].LineStyle = LineStyleType.None;
      

       
 newBook.SaveToFile("ExcelFileDestination.xls", ExcelVersion.Version97to2003);
}



Спасибо за любую помощь .

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

public void myCodeExcel.Appli()
{
 Excel.Application APP = new Microsoft.Office.Interop.Excel.Application();
        //Destination
 Microsoft.Office.Interop.Excel.Workbook newBook = APP.Workbooks.Open(excelFileDestinationPAth);

       Microsoft.Office.Interop.Excel.Worksheet newSheet = (Microsoft.Office.Interop.Excel.Worksheet) newBook.Worksheets[1];        
        
// source
    Microsoft.Office.Interop.Excel.Workbook workBook = APP.Workbooks.Open(excelFileSourcePAth);

       Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet) workbook.Worksheets[3];               
     foreach (CellRange range in sheet.Columns[0])
          {
              if (range.Text == KEYsearch)
              {
         
            //getdata search code from source and copy it in excel file destination


         }


newBook.save(excelFileDestinationPath);

1 Ответов

Рейтинг:
0

Kenneth Haugland

Ну, так как вы действительно не знаете, как делать самые простые вещи в Excel, вы можете начать здесь:
Пошаговое руководство: создание первой надстройки VSTO для Excel[^]

Затем используйте вопрос улучшения, когда вы застряли на конкретной проблеме.


EM_Y

Я думаю, ты даже не понял, что я пытаюсь объяснить !
Я хочу скопировать строку, где мой поиск ключа существует в столбце [0]filesource +строку 2 рядом с моим новым назначением файла . Раньше я кодировал с помощью spire .xls, и мой код работает очень хорошо, но я хочу преобразовать его в nrmal excel.Метод приложения .
Будет очень просто скопировать данные одной ячейки в другую .
Спасибо за вашу помощь.

Kenneth Haugland

xls-файлы-это xls-файлы, так в чем же тогда ваша проблема? Почему бы просто не использовать IO file.copy?

EM_Y

это не один и тот же код свойства , есть различия между использованием : using spire.xls и использование Excel = Microsoft.Офис.Взаимодействие.Пространства имен Excel !
Я все еще пытаюсь его найти .. очень благодарен .

Kenneth Haugland

Я действительно не думаю что ты это понимаешь:
"This Professional .NET Excel component is a standalone Excel .NET managed assembly and does not depend on Microsoft Office Excel. Spire.XLS for .NET offers support both for the old Excel 97-2003 format (.xls) and for the new Excel 2007,Excel 2010, Excel 2013 and Excel 2016 (.xlsx, .xlsb, .xlsm), along with Open Office(.ods) format. It features fast and reliably compared to developing your own spreadsheet manipulation solution or using Microsoft Automation." Meaning it creates an Excel file, and to be able to use Excel.Interop you need to have Excel installed on your computer. If you are wondering about how to do stuff in Excel, just use record macro and look at the excel code.

EM_Y

о'кей , я все понимаю, Спасибо за ваше время, я стараюсь изо всех сил .