создать несколько листов Excel одновременно - PullRequest
0 голосов
/ 23 апреля 2019

Я могу создать рабочие листы Excel на C # / VB.net с помощью Microsoft.Office.Interop.Excel.Worksheet, добавить их в рабочую книгу и в конечном итоге открыть Excel следующим образом:

 Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs)
    Dim excel As Object = New Microsoft.Office.Interop.Excel.Application()
    Dim wb As Object = excel.Workbooks.Add()
    Dim wk1 As Object = CType(wb.Sheets.Add(), Microsoft.Office.Interop.Excel.Worksheet)
    Dim wk2 As Object = CType(wb.Sheets.Add(), Microsoft.Office.Interop.Excel.Worksheet)
    Dim wk3 As Object = CType(wb.Sheets.Add(), Microsoft.Office.Interop.Excel.Worksheet)

    wk3.Name = "Work Sheet Three"
    wk2.Name = "Work Sheet Two"
    wk1.Name = "Work Sheet One"

    OpenWorkSheetOne()
    OpenWorkSheetTwo()
    OpenWorkSheetThree()

    excel.Visible = True
    wb.Activate()

End Sub

C #

 Private void MainWindow_Loaded(object sender, RoutedEventArgs e)
 { 
  object excel = new Microsoft.Office.Interop.Excel.Application();
  object wb = excel.Workbooks.Add();
  object wk1 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();
  object wk2 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();
  object wk3 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();
  wk3.Name = "Work Sheet Three";
  wk2.Name = "Work Sheet Two";
  wk1.Name = "Work Sheet One";

  OpenWorkSheetOne();
  OpenWorkSheetTwo();
  OpenWorkSheetThree();

  excel.Visible = true;
  wb.Activate();

   }

У меня есть несколько рабочих листов, и обработка занимает слишком много времени.Я хочу (возможно) обрабатывать рабочие листы одновременно в разных потоках (я полагаю) и одновременно добавлять их в рабочую книгу.

Как я могу это сделать и сократить время обработки?

Я погуглил и не могу найти подходящий ответ.

1 Ответ

0 голосов
/ 23 апреля 2019

Попробуйте эту библиотеку:
https://github.com/ClosedXML/ClosedXML

Он очень прост в использовании:

using (var workbook = new XLWorkbook()){
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
workbook.SaveAs("HelloWorld.xlsx");

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...