Oferta TGSoft

Import danych do JPK z arkusza Excel za pomocą API



W poprzednim dokumencie opisano kilka przykładów wypełniania arkuszy na potrzeby generowania pliku JPK_VAT. Wszystkie sprowadzają się do manualnego wprowadzania danych lub kopiowania poszczególnych komórek z Excela za pomocą metody kopiuj-wklej.

W wielu przypadkach posiadamy część lub całość danych w skoroszytach Excel, posiadamy też funkcje w programach księgowych, które wysyłają dane do arkuszy w sposób usystematyzowany. Dla takich tabelarycznych danych przygotowaliśmy przykład automatycznego importu poszczególnych komórek bezpośrednio do Rejestru Sprzedaży otwartego arkusza kalkulacyjnego Programu-JPK.



Generator JPK w Arkuszu XLS

Widok faktur w programie Excel. Dla naszego przykładu tabela nie musi mieć wymaganej kolejności kolumn ani odpowiednich nazw kolumn. Dane źródłowe Excel mogą być w dowolny sposób sformatowane.



Generator JPK w Arkuszu XLS

Okno do wprowadzenia skryptu otwieramy przyciskiem [C# API]. Po wpisaniu kodu, który można zapisać i załadować z pliku, należy go uruchomić przyciskiem [Wykonaj].



Generator JPK w Arkuszu XLS

Ten sam przykład z „zadokowanym” skryptem poniżej skoroszytu. Dzięki temu widać więcej kolumn arkusza.

Program jest bardzo prosty i łatwy do wykorzystania dla własnych danych z dowolnego arkusza XLS, XLSX lub CSV. Wystarczy podać nazwę własnego pliku z danymi, a w pętli odczytującej dane podać własne nazwy kolumn. Zamieniamy tylko nazwy z przykładu: Data, Faktura, NIP, Nazwa, Netto, VAT.

W rzeczywistych skoroszytach możemy posiadać więcej kolumn z danymi, wówczas wystarczy dodać nowe wiersze w skrypcie i wpisać swoje nazwy kolumn.



Poniżej cały kod C# przykładu:

using System;
using DevExpress.Spreadsheet;
using TGSoft.UI.XLS;
using TGSoft.Utils;

namespace Szark
{
    public class XlsApi
    {
        public XlsApi(SSController sender)
        {
            var sc = new SSController();
            if (!sc.LoadDocument(@"C:\TMP\JPK\ZestawienieSprzedazy.xlsx"))
                return;
            
            var xs = new WsTable(sc);
            var xt = new WbTable(sender.GetWorksheet(1));
            int lp = xt.GetValue(xt.LastRow, "LpSprzedazy").ToInt();
            for (int i = 1; i <= xs.LastRow; i++)
            {
                lp++;
                xt.NewRow();
                xt.SetField("LpSprzedazy", lp);
                xt.SetField("DataWystawienia", xs.GetValue(i, "Data"));
                xt.SetField("DowodSprzedazy", xs.GetValue(i, "Faktura")); 
                xt.SetField("NrKontrahenta", xs.GetValue(i, "NIP").ToStr()); 
                xt.SetField("NazwaKontrahenta", xs.GetValue(i, "Nazwa")); 
                xt.SetField("k_19", xs.GetValue(i, "Netto")); 
                xt.SetField("k_20", xs.GetValue(i, "VAT")); 
                xt.AppendRow();
            }
            
            xt.UpdateFormat();
        }
    }
}
        



Video prezentuje import danych bezpośrednio ze skoroszytu XLSX, przy czym aplikacja Excel nie musi być zainstalowana w komputerze. Program-JPK odczytuje i zapisuje pliki arkuszy kalkulacyjnych bez potrzeby instalowania dodatkowych programów i sterowników.