مشكلة تتعلق بتصدير البيانات إلى ملف CSV في .NET core

برمجة


ملف CSV يعطي خطأ في التنسيق مع هذا الرمز

ما حاولت:

ج#
<pre>private byte[] BuildCollectionReport(string fromDate, string toDate) {
			var FileData = new byte[] { };
			using (System.IO.MemoryStream stream = new MemoryStream()) {
				using (ExcelPackage p = new ExcelPackage(stream)) {
					var s = p.Workbook.Worksheets.Add("IN Collection Report");
					try {
						string[] columnHeaders = new string[]{
							"TypeName"
							,"CategoryName"
							,"TSSubject"
							,"TSStatus"
							,"TSContactId"
							,"TSAgreementId"
							,"Agreement Number"
							,"TSDate"
							,"TSAmount"
						};
						foreach (var c in columnHeaders) {
							SetValue(ref s, 1, Array.IndexOf(columnHeaders, c) + 1, c);
						}
						int rowIndex = 2;
						var sp = (StoredProcedure)new StoredProcedure(UserConnection, "CollectionReport")
							.WithParameter("FromDate", fromDate)
							.WithParameter("ToDate", toDate);
						try {
							using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
							{
								using (var reader = dbExecutor.ExecuteReader(sp.GetSqlText(), sp.Parameters)) {
									while(reader.Read()) {
										for (int n = 0; n < reader.FieldCount; n++)
										{
											SetValue(ref s, rowIndex, n+1, reader.GetValue(n).ToString());
										}
										rowIndex++;
									}
								}
							}
						} catch {}
					} catch {}
					FileData = p.GetAsByteArray();
				}
			}
			return FileData;
		}
		
		private void SetValue(ref ExcelWorksheet Sheet, int Row, int Cell, string Value) {
			if (!string.IsNullOrWhiteSpace(Value)) {
				Sheet.Cells[Row, Cell].Value = Value;
			}
		}
public Stream DownloadCollectionReport(string fromDate, string toDate)
		{
			var excelData = BuildCollectionReport(fromDate, toDate);
			var reportStream = new MemoryStream(excelData);
			WebOperationContext.Current.OutgoingResponse.ContentType = "application/octet-stream";
			WebOperationContext.Current.OutgoingResponse.ContentLength = reportStream.Length;
			WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition",
				"attachment; filename=CollectionReport.csv");
			return reportStream;
		}

الحل 1

ابدأ بالنظر إلى بيانات CSV الفعلية التي تنشئها – لا يمكننا القيام بذلك لأنه ليس لدينا مدخلاتك للعمل منها. لذا احفظ بيانات CSV في ملف، وافتحه في أحد المحررين وألقِ نظرة فاحصة عليه بنفسك.
إن تنسيق CSV ليس تنسيقًا معقدًا، لذلك قد يكون بسيطًا مثل فقدان علامات الاقتباس المزدوجة، أو احتواء بياناتك على أحرف تؤدي إلى إفساد المخرجات.
ولكن دون النظر إلى بيانات CSV الفعلية التي تسبب المشكلة، لا توجد طريقة لمعرفة أين تبدأ البحث.

الحل 2

عند الإجابة على السؤال يرجى:
اقرأ السؤال بعناية.
افهم أن اللغة الإنجليزية ليست اللغة الأولى للجميع، لذا كن متساهلاً مع الأخطاء الإملائية والنحوية السيئة.
إذا تمت صياغة السؤال بشكل سيئ، فاطلب التوضيح أو تجاهله أو قم بتحرير السؤال وإصلاح المشكلة. الإهانات ليست موضع ترحيب.
لا تخبر أحدا بقراءة الدليل. هناك احتمالات أنهم لديهم ولا يحصلون عليها. قم بتقديم إجابة أو انتقل إلى السؤال التالي.
دعونا نعمل على مساعدة المطورين، وليس جعلهم يشعرون بالغباء.

コメント

タイトルとURLをコピーしました