Witam,
Piszę aplikację która pozwoli mi z gotowego pliku .csv przekopiować dane do odpowiednich komórek w pliku .xlsx.
Niestety obecny kod kopiuje surowy plik .csv,tzn wszystko z przecinkami itp. do pierwszej komórki, która jest podana w kodzie.
Ktoś ma jakieś pomysły jak przekopiować dane z .csv tak aby excel je dobrze zinterpretował?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Excel = Microsoft.Office.Interop.Excel;
namespace Kreator
{
class Program
{
static void Main(string[] args)
{
Excel.Application srcApp;
Excel.Workbook srcWorkbook;
Excel.Worksheet srcWorksheet;
Excel.Application destApp;
Excel.Workbook destWorkbook;
Excel.Worksheet destWorksheet;
string srcPath = "C:\\Users\\Desktop\\Raport.csv";
string destPath = "C:\\Users\\Desktop\\XXX.xlsx";
//Otwieranie pierwszej aplikacji excela - raportu
srcApp = new Excel.Application();
srcWorkbook = srcApp.Workbooks.Open(srcPath);
srcWorksheet = srcWorkbook.Worksheets.get_Item(1);
//Otwieranie templatki
destApp = new Excel.Application();
destWorkbook = destApp.Workbooks.Open(destPath,0,false);
destWorksheet = destWorkbook.Worksheets.get_Item(1);
//Kopiowanie
Excel.Range srcRange = srcWorksheet.get_Range("A1", "C20");
Excel.Range destRange = destWorksheet.get_Range("C10","E29");
srcRange.Copy(Type.Missing);
destRange.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteValues, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone);
//Zapisywanie wyniku
destWorkbook.SaveAs("C:\\Users\\Desktop\\GotowyPlik" + DateTime.Now.ToString("MM_dd_yyyy") + ".xlsx");
//Sprzątanie
srcApp.Application.DisplayAlerts = false;
destApp.Application.DisplayAlerts = false;
srcWorkbook.Close(false, null, null);
destWorkbook.Close(true, null, null);
destApp.Quit();
srcApp.Quit();
}
}
}
Z góry dziękuje wszystkim za pomoc.