Chuyển đổi Excel sang CSV .net Core

hộp đá quý. Bảng tính là một. NET cho phép bạn đọc, viết, chuyển đổi và in các tệp bảng tính (XLSX, XLS, XLSB, CSV, HTML và ODS) từ. ứng dụng NET. Với GemBox. Bảng tính bạn nhận được một thành phần nhanh và đáng tin cậy, dễ sử dụng và không phụ thuộc vào Microsoft Excel. Nó yêu cầu

Thư viện lập trình bảng tính Excel có khả năng xây dựng các ứng dụng đa nền tảng với khả năng tạo, sửa đổi, chuyển đổi, kết xuất và in tất cả các tệp Excel. . NET Excel API không chỉ chuyển đổi giữa các định dạng bảng tính, nó còn có thể hiển thị các tệp Excel dưới dạng hình ảnh, PDF, HTML, ODS, CSV, SVG, JSON, WORD, PPT, v.v., do đó, đây là lựa chọn hoàn hảo để trao đổi tài liệu theo tiêu chuẩn ngành
Thư viện lập trình bảng tính Excel có khả năng xây dựng các ứng dụng đa nền tảng với khả năng tạo, sửa đổi, chuyển đổi, kết xuất và in tất cả các tệp Excel. . NET Excel API không chỉ chuyển đổi giữa các định dạng bảng tính, nó còn có thể hiển thị các tệp Excel dưới dạng hình ảnh, PDF, HTML, ODS, CSV, SVG, JSON, WORD, PPT, v.v., do đó, đây là lựa chọn hoàn hảo để trao đổi tài liệu theo tiêu chuẩn ngành

Microsoft Excel XLSX và CSV dựa trên văn bản (các giá trị được phân tách bằng dấu phẩy) là định dạng tệp phổ biến để trao đổi dữ liệu và các ứng dụng có thể hưởng lợi đáng kể từ việc triển khai hỗ trợ đọc và ghi các định dạng tệp này. Trong ví dụ này, chúng tôi sẽ tải xuống dữ liệu thị trường Bitcoin-Đô la Mỹ hàng tháng mới nhất ở định dạng CSV và sau đó nhập dữ liệu CSV đó vào Ứng dụng dịch vụ web C# (có thể hoạt động trên nhiều nền tảng) để tạo bảng tính XLSX mới chứa dữ liệu ở dạng . Sau đó, ứng dụng web sẽ trả về bảng tính XLSX. Bảng tính này có thể được mở trong bất kỳ ứng dụng bảng tính nào đọc các tệp bảng tính XML đối tượng mở (OOXML) tiêu chuẩn

Chúng tôi sẽ sử dụng dịch vụ web để lấy dữ liệu (theo liên kết để nhận khóa API miễn phí của bạn để sử dụng trong các ví dụ về mã) và GrapeCity Documents cho Excel. NET v5. 2, có hỗ trợ tích hợp để nhập dữ liệu CSV, tạo bảng tính mới có bảng, biểu đồ, v.v. và xuất một XLSX mới theo các bước sau

  1. (sử dụng Visual Studio 2022 để tạo ASP mới. NET Core Web API)
  2. (sử dụng dịch vụ web AlphaVantage để nhận dữ liệu BTC-USD hàng tháng ở định dạng CSV)
  3. (sử dụng Tài liệu GrapeCity cho Excel. NET API)
  4. (sắp xếp lại các cột, tạo bảng và tạo biểu đồ có đường xu hướng)
  5. (sử dụng Tài liệu GrapeCity cho Excel. NET API)

Sẵn sàng để dùng thử?

Tạo dự án

Chuyển đổi Excel sang CSV .net Core

Hình 1 Tạo ASP mới. NET Core Web API Project trong Visual Studio 2022

Sử dụng Visual Studio 2022, tạo dự án mới (CTRL+SHIFT+N) và chọn C#, Tất cả nền tảng và WebAPI trong trình đơn thả xuống để tìm nhanh loại dự án ASP. NET Core Web API, sau đó chọn nó và nhấp vào Tiếp theo

Chuyển đổi Excel sang CSV .net Core

Hình 2 Cấu hình ASP mới. NET Core Web API Project trong Visual Studio 2022

Nhập BTC_Chart_WebService cho Tên dự án và chọn một Vị trí cho dự án, sau đó nhấp vào Tiếp theo

Chuyển đổi Excel sang CSV .net Core

Hình 3 Định cấu hình mục tiêu khung

Lựa chọn. MẠNG 6. 0 (Hỗ trợ dài hạn) cho Khuôn khổ, sau đó nhấp vào Tiếp theo

Thao tác này sẽ tạo một mẫu ASP. NET Core WebAPI, chứa mã mẫu để trả về dự báo thời tiết. Chúng tôi sẽ không cần điều đó trong dự án của mình, nhưng chúng tôi có thể sử dụng lại và sử dụng lại Bộ điều khiển. Sử dụng Solution Explorer (CTRL+ALT+L) để đổi tên tệp Trình điều khiển trong dự án (bên dưới Bộ điều khiển) thành BTCChartController. cs

Chuyển đổi Excel sang CSV .net Core

Hình 4 Trong Bộ điều khiển, đổi tên WeatherForecastController. cs vào BTCChartController. cs

Khi bạn thay đổi tên tệp, Visual Studio sẽ nhắc bạn và hỏi xem bạn có muốn thay đổi tất cả tham chiếu mã trong dự án hay không – nhấp vào Có trong hộp thoại

Chuyển đổi Excel sang CSV .net Core

Hình 5 Đổi tên tham chiếu mã - nhấp vào Có tại đây

Sau đó chọn tệp dự án WeatherForecast. cs và xóa nó khỏi dự án (DEL), sau đó nhấp vào Có trong hộp thoại yêu cầu bạn xác nhận

Chuyển đổi Excel sang CSV .net Core

Hình 6 Xác nhận xóa WeatherForecast. cs từ dự án

Bây giờ trong Solution Explorer (CTRL+ALT+L), nhấp chuột phải vào Phần phụ thuộc và chọn Quản lý các gói NuGet

Chuyển đổi Excel sang CSV .net Core

Hình 7 Mở Quản lý gói NuGet từ Phần phụ thuộc của Solution Explorer

Tìm kiếm GrapeCity. Các tài liệu. Excel trên nuget. org và cài đặt phiên bản 5. 2. 0 (hoặc mới hơn) trong dự án

Truy vấn dữ liệu

Bây giờ, trong Solution Explorer (CTRL+ALT+L), hãy chọn tệp BTCChartController. cs để chỉnh sửa và nhận xét mã không cần thiết cho Tóm tắt liên quan đến dự báo thời tiết

Bộ điều khiển biểu đồ BTC

public class BTCChartController : ControllerBase
{
    //    private static readonly string[] Summaries = new[]
    //    {
    //    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    //};

Bây giờ, hãy thêm mã sau vào bên dưới mã đã nhận xét ở trên để truy vấn dịch vụ web AlphaVantage cho dữ liệu BTC-USD hàng tháng ở định dạng CSV (thay thế trong mã)

GetCSVData

//    private static readonly string[] Summaries = new[]
//    {
//    "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
//};
// Get the CSV data from the AlphaVantage web service
private string GetCsvData()
{
    string csv;
    string API_KEY = "YOUR_KEY_HERE";
    string QUERY_URL = $"https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_MONTHLY&symbol=BTC&market=USD&apikey={API_KEY}&datatype=csv";
    Uri queryUri = new Uri(QUERY_URL);
    using (HttpClient client = new HttpClient())
    {
        Task t = client.GetStringAsync(queryUri);
        while (!t.IsCompleted)
            t.Wait();
        csv = t.Result;
    }
    return csv;
}

Tải CSV

Bây giờ, sao chép mã sau vào phương thức Get(), cập nhật Name trong thuộc tính HttpGet thành GetBTC-USDChartWorkbook, đồng thời thay đổi loại trả về thành FileContentResult, sau đó nhận xét mã liên quan đến dự báo thời tiết trước khi thêm mã để gọi GetCsvData

Bộ điều khiển biểu đồ BTC. Được

[HttpGet(Name = "GetBTC-USDChartWorkbook")]
//public IEnumerable Get()
public FileContentResult Get()
{
    //return Enumerable.Range(1, 5).Select(index => new WeatherForecast
    //{
    //    Date = DateTime.Now.AddDays(index),
    //    TemperatureC = Random.Shared.Next(-20, 55),
    //    Summary = Summaries[Random.Shared.Next(Summaries.Length)]
    //})
    //.ToArray();
 
    // first get CSV data
    string csv = GetCsvData();
 
    // create new workbook
    IWorkbook wbk = new Workbook();
    // open CSV data in GcExcel using MemoryStream
    using (Stream s = new MemoryStream())
    {   // convert to byte array using UTF8 encoding
        byte[] arr = System.Text.Encoding.UTF8.GetBytes(csv.ToCharArray());
        s.Write(arr);
        s.Seek(0, SeekOrigin.Begin);
        // open CSV in workbook
        wbk.Open(s, OpenFileFormat.Csv);
    }

Xử lý CSV

Giờ hãy sao chép mã sau để xử lý CSV trong sổ làm việc.  

Bộ điều khiển biểu đồ BTC. Nhận (tiếp)

// get the worksheet with the CSV data
IWorksheet wks = wbk.Worksheets[0];
// move volume to column B, before open/high/low/close
// it works better to create the StockVOHLC chart with
// the series in the correct order (date-volume-open-high-low-close)
wks.Range["B:B"].Insert();
wks.Range["K:K"].Copy(wks.Range["B:B"]);
wks.Range["K:K"].Delete();
// get the range containing the CSV data
IRange used = wks.UsedRange;
// create a new Table for the CSV data named "BTC_Monthly"
ITable tbl = wks.Tables.Add(used, true);
tbl.Name = "BTC_Monthly";
// auto-fit the columns in the table to show all the cell values
used.AutoFit();
// add the StockVOHLC chart shape over the table (the table is completely beneath the chart)
IShape shape = wks.Shapes.AddChart(ChartType.StockVOHLC, 0, 0, used.Width, used.Height);
// get the IChart from the shape
IChart chart = shape.Chart;
// set the chart title
chart.ChartTitle.Text = "BitCoin Monthly Open-High-Low-Close-Volume";
// add the chart series (the first 6 columns in the table)
chart.SeriesCollection.Add(wks.Range[0, 0, used.RowCount, 6], RowCol.Columns, true, true);
// add trend line for Volume series in Blue
ITrendline voltrend = chart.SeriesCollection[0].Trendlines.Add();
voltrend.Name = "3 Month Moving Avg VOL";
voltrend.Type = TrendlineType.MovingAvg;
voltrend.Period = 3;
voltrend.Format.Line.Color.RGB = Color.Blue;
voltrend.Format.Line.DashStyle = LineDashStyle.RoundDot;
// add trend line for High series in Green
ITrendline hightrend = chart.SeriesCollection[2].Trendlines.Add();
hightrend.Name = "3 Month Moving Avg HIGH";
hightrend.Type = TrendlineType.MovingAvg;
hightrend.Period = 3;
hightrend.Format.Line.Color.RGB = Color.Green;
hightrend.Format.Line.DashStyle = LineDashStyle.RoundDot;
// add trend line for Low series in Red
ITrendline lowtrend = chart.SeriesCollection[3].Trendlines.Add();
lowtrend.Name = "3 Month Moving Avg LOW";
lowtrend.Type = TrendlineType.MovingAvg;
lowtrend.Period = 3;
lowtrend.Format.Line.Color.RGB = Color.Red;
lowtrend.Format.Line.DashStyle = LineDashStyle.RoundDot;

Đầu tiên, mã lấy IWorksheet có dữ liệu CSV và sắp xếp lại các cột để đặt cột Khối lượng giữa cột Ngày và cột Mở. Sau đó, nó tạo một Bảng có tên BTC_Monthly chứa dữ liệu CSV và tự động khớp các cột trong Bảng. Sau đó, mã thêm một Biểu đồ mới trong trang tính thuộc loại Cổ phiếuVOHLC (Khối lượng-Mở-Cao-Thấp-Đóng) trên toàn bộ phạm vi bảng, đặt tiêu đề biểu đồ, thêm chuỗi vào biểu đồ rồi tạo ba Đường xu hướng. Đường xu hướng hiển thị các đường trung bình động trong ba tháng cho Khối lượng có màu xanh lam, Cao có màu xanh lá cây và Thấp có màu đỏ

Trả lại XLSX

Giờ hãy sao chép mã sau đây để lưu Workbook vào XLSX và gửi lại từ dịch vụ web

        // Save Workbook to XLSX and return from web service as "BTC_Chart.xlsx"
        using (MemoryStream ms = new MemoryStream())
        {
            wbk.Save(ms, SaveFileFormat.Xlsx);
            ms.Seek(0, SeekOrigin.Begin);
            byte[] bytes = ms.ToArray();
            return File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "BTC_Chart.xlsx");
        }
    } // Get()
} // BTCChartController

Bây giờ dự án đã hoàn thành và sẵn sàng để chạy. Nhấn F5 để chạy ở chế độ gỡ lỗi và bạn có thể dùng thử

Chuyển đổi Excel sang CSV .net Core

Hình 8 Nhấn F5 để chạy BTC_Chart_WebService trong Gỡ lỗi

Mở danh sách thả xuống và nhấp vào Dùng thử

Chuyển đổi Excel sang CSV .net Core

Hình 9 Nhấn Dùng thử để kiểm tra dịch vụ web

Sau đó nhấp vào Thực thi và bạn sẽ sớm thấy kết quả thành công và liên kết để tải xuống tệp XLSX

Làm cách nào để chuyển đổi Tệp Excel thành CSV bằng C#?

Chuyển đổi Excel (XLS/XLSX) sang CSV trong C# . Load the Excel file (XLS or XLSX) using the Converter class. Đặt định dạng chuyển đổi của tệp đầu ra dưới dạng CSV bằng cách sử dụng SpreadsheetConvertOptions. Gọi phương thức Chuyển đổi để chuyển đổi dữ liệu bảng tính hoặc các trang cụ thể sang định dạng CSV.

Làm cách nào để chuyển đổi Excel sang CSV theo chương trình?

Bước 4. Sử dụng đoạn mã sau để chuyển đổi tệp Excel có văn bản đơn giản thành tệp CSV. .
SaveAs(Chuỗi,Chuỗi)
SaveAs(Chuỗi,Chuỗi,Mã hóa)
SaveAs(Luồng,Chuỗi)
SaveAs(Luồng,Chuỗi,Mã hóa)

Làm cách nào để đọc Tệp Excel trong C#?

Cách đọc tệp Excel trong C# .
Tải Thư viện C# để đọc file Excel
Tải và đọc tệp Excel (sổ làm việc)
Tạo sổ làm việc Excel trong CSV hoặc XLSX
Chỉnh sửa giá trị ô trong một dải ô
Xác thực dữ liệu bảng tính
Xuất dữ liệu bằng Entity Framework

Làm cách nào để nhập và xuất Tệp Excel trong asp net C#?

Cách Nhập và Xuất CSV và Excel XLSX trong. .
Tạo Dự án (sử dụng Visual Studio 2022 để tạo một ASP mới. NET Core Web API)
Truy vấn dữ liệu (sử dụng dịch vụ web AlphaVantage để nhận dữ liệu BTC-USD hàng tháng ở định dạng CSV)
Tải CSV (sử dụng GrapeCity Documents cho Excel. NET API)