PDA

View Full Version : مبتدی: مشکل در خروجی Excel



پیام حیاتی
یک شنبه 10 مرداد 1395, 13:27 عصر
سلام
این کدهای من هست :

Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = Excel.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)Excel.ActiveSheet;
Excel.Visible = true;


ws.Cells[1, 1] = "Row";
ws.Cells[1, 2] = "نام";
ws.Cells[1, 3] = "نام خانوادگی";
ws.Cells[1, 4] = "تاریخ ورود";
ws.Cells[1, 5] = "تاریخ خروج";
ws.Cells[1, 6] = "زمان ورود";
ws.Cells[1, 7] = "زمان خروج";
ws.Cells[1, 8] = "تاریخ فارسی";


for(int j=2;j<=dataGridView1.Rows.Count; j++)
{
for(int i=2;i<=5;i++)
{
ws.Cells[j, 1] = dataGridView1.Rows[j - 2].Cells[i - 1].Value;
}
}


زمانی که خروجی می گیرم هیچ اطلاعاتی در فایل Excel ثبت نمی شود.

141800

دلتنگ اسمان
یک شنبه 10 مرداد 1395, 13:57 عصر
با سلام
مقدار رو به رشته تبدیل کن

ws.Cells[j, 1] = dataGridView1.Rows[j - 2].Cells[i - 1].Value.ToString()

En_MK
یک شنبه 10 مرداد 1395, 14:13 عصر
سلام
فکر میکنم ایراد کار از ادرسیه که به Cell می دید هر دو رو یک دادید

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
}

public class Account
{
public int ID { get; set; }
public double Balance { get; set; }
}

static void DisplayInExcel(IEnumerable<Account> accounts)
{
var excelApp = new Excel.Application();

excelApp.Visible = true;
excelApp.Workbooks.Add();
Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;
workSheet.Cells[1, "A"] = "ID Number";
workSheet.Cells[1, "B"] = "Current Balance";

var row = 1;
foreach (var acct in accounts)
{
row++;
workSheet.Cells[row, "A"] = acct.ID;
workSheet.Cells[row, "B"] = acct.Balance;
}
}

private void button1_Click(object sender, EventArgs e)
{
var bankAccounts = new List<Account> {
new Account {
ID = 345678,
Balance = 541.27
},
new Account {
ID = 1230221,
Balance = -127.44
}
};
DisplayInExcel(bankAccounts);
}
}
}

پیام حیاتی
یک شنبه 10 مرداد 1395, 14:13 عصر
الآن فقط یک فیلد رو برمیگردونه ، آن هم نامرتبط باعنوان ها:

141801

در فیلم آمموزشی یوتیوب همین کدها رو قرار میده همه چیز یکی هست ولی نتیجه کار من خراب میشه :اشتباه:

پیام حیاتی
یک شنبه 10 مرداد 1395, 14:17 عصر
سلام
فکر میکنم ایراد کار از ادرسیه که به Cell می دید هر دو رو یک دادید

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
}

public class Account
{
public int ID { get; set; }
public double Balance { get; set; }
}

static void DisplayInExcel(IEnumerable<Account> accounts)
{
var excelApp = new Excel.Application();

excelApp.Visible = true;
excelApp.Workbooks.Add();
Excel._Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;
workSheet.Cells[1, "A"] = "ID Number";
workSheet.Cells[1, "B"] = "Current Balance";

var row = 1;
foreach (var acct in accounts)
{
row++;
workSheet.Cells[row, "A"] = acct.ID;
workSheet.Cells[row, "B"] = acct.Balance;
}
}

private void button1_Click(object sender, EventArgs e)
{
var bankAccounts = new List<Account> {
new Account {
ID = 345678,
Balance = 541.27
},
new Account {
ID = 1230221,
Balance = -127.44
}
};
DisplayInExcel(bankAccounts);
}
}
}


خیلی پیچیده شد

پیام حیاتی
یک شنبه 10 مرداد 1395, 14:46 عصر
بالاخره یه قطعه کد سالم و بدون مشکل یافتم :
http://csharp.net-informations.com/excel/csharp-excel-export.htm
از همگی ممنونم.