2015-01-22 3 views
2

Мне нужно создать один метод, который он сможет скопировать лист Excel, а затем вставить его на новый лист excel в той же книге, но необходимо скопировать форматирование также.Скопируйте лист Excel на новый лист, включая форматирование - C#

Я нашел несколько кодов, но все они не копируют форматирование, а только текст. ниже код, который я написал:

 // Opening Excel File 
     Microsoft.Office.Interop.Excel.Application excel = null; 
     excel = new Microsoft.Office.Interop.Excel.Application(); 

     Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(file, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
     Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Worksheets; 
     Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(1); 
     Microsoft.Office.Interop.Excel.Worksheet sheet2 = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(2); 


     // Copy the source sheet 
     Object defaultArg = Type.Missing; 

     sheet = (Worksheet)workbook.Sheets[1]; 
     sheet.UsedRange.Copy(defaultArg); 

     // Paste on destination sheet 
     sheet2.UsedRange._PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false); 

     workbook.Save(); 
     common.closeExcel(excel, workbook); 

Если кто имеет какие-либо предложения, пожалуйста, дайте мне знать.

Спасибо,

+1

Пробовали ли вы/прочитать о различных значениях '' XlPasteType'and XlPasteSpecialOperation '? – DrKoch

+1

Спасибо DrKoch, я изменил XlPasteType.xlPasteValues ​​на XlPasteType.xlPasteAllUsingSourceTheme и работал лучше. – Felipe

ответ

-2

Это сделает точную копию листа на новый лист, переименованном в оригинале:

Dim x = 2 
For numtimes = 1 To x 
Sheet1.Copy _ 
After:=Sheet1 
Next 
+1

Это VBA не C# –

Смежные вопросы