Coder Social home page Coder Social logo

excel2sqlserver.library's Introduction

I'm into C#, SQL Server, modern .NET, Blazor, Razor, DigitalOcean, and Azure. I love relational data access, Dapper, and I make a couple Dapper extension libraries:

Along with some SQL Server-related libraries and tools:

I also work with Blazor a lot. Most of my work is closed-source, but I have a couple things in progress that are public:

I have some closed-source products:

  • Sendhook.net for capturing inbound email as HTTP posts at your own endpoints, uses Azure functions, queues, and blob storage. (Note this app is currently stopped, but feel free to ask me about it.)
  • SqlChartify for writing queries and getting charts made with ChartJS.

Some other odds and ends:

  • QuestPdfUtil a very lightweight HTML -> PDF converter
  • RoslynMarkdowner, a utility for generating C# documentation as markdown. I use this whenever I want to provide a reference of methods and parameters for my libraries.
  • In ChunkUpload, I sketched out an approach to supporting large file uploads. A NuGet package came out of this that I'm using in other projects now.

WinForms stuff:

  • AzDeploy, my continuous deployment mechanism for WinForms apps
  • AOLicensing for desktop app gatekeeping and licensing
  • ImgCloudPaste, for pasting images and getting screenshot URLs using Azure storage

excel2sqlserver.library's People

Contributors

adamfoneil avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

gtechsltn

excel2sqlserver.library's Issues

ability to override/modify generated identity column

There's an identity column with hardcoded name Id that's added to the import table. It would be nice, I believe, if you could modify this or perhaps suppress it entirely. The options maybe should be

  • default: Id
  • include table name: {TableName}Id
  • arbitrary name: any name you like

Something like that

auto trim feature

Ability to call LTRIM(RTRIM()) on incoming data to remove spaces that are (as far as I can imagine) always unwanted.

large file download abstract class

Create some kind of abstract wrapper class that encapsulates behaviors you'd need for reliable large spreadsheet downloads, following a begin, continue, complete pattern. This would use segmented temp storage of some kind, and zip file creation to prevent buffering a huge data set in memory.

inline lookup feature

When populating tables with key values, it's hard for users to have access to those keys and build spreadsheets manually with them. It would be a lot easier for the user to upload spreadsheets that have text values that we can automatically, silently convert to matching key values.

The idea here is to have an InlineLookup object. You'd use this after a normal upload, so there's no change to the core upload behavior.

You new up an InlineLookup<T> where T is the key type (typically int). You also specify the raw upload (source) table along with the output table that will store the results of all your attempted mappings. You also pass one or more Lookup objects that describe the mappings in use. We create blank rows in the output table to match the input, then update the result based on your defined joins:

var inlineLookup = new InlineLookup<int>("excel.RawSalesData", "excel.SalesDataKeyColumns", new Lookup[] 
{
    new Lookup("RegionName", "RegionId", "dbo.Region", "Name", "Id")
});

using (var cn = GetConnection())
{
    await inlineLookup.ExecuteAsync(cn);
}

column length validation feature

When uploading a spreadsheet, we're usually doing that to stage an insert into another table.
That uploaded spreadsheet uses varchar(max) everywhere, so it allows things that are likely to fail when you insert into the destination table.
What I picture therefore is a new way to compare the lengths of varchar columns in the upload table with target columns they intend to map to, and to surface that as error info prior to attempting a real data load.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.