এক্স, এক্সএলএসএক্স বা এক্সএলএল এ এক্সেল ফাইলগুলি আমদানি করা হচ্ছে


91

আর কেউ এক্সেল 2007 (.xlsx) ফাইলটি আমদানির সর্বোত্তম উপায়ে আমাকে সাহায্য করতে পারেন I আমি 2.13.1, উইন্ডোজ এক্সপি, এক্সএলএক্সএক্স ০.০.০ এ আপগ্রেড করেছি, আমি জানি না কেন ত্রুটিটি সামনে আসে। আমি চেষ্টা করেছিলাম:

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")

বা

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1)

তবে আমি ত্রুটি পেয়েছি:

 Error in .jnew("java/io/FileInputStream", file) : 
  java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified)

ধন্যবাদ.


4
আপনি কতবার এটি করছেন? তাহলে শুধু একবার, এটা প্রায় সবসময়, আরো উম্মুক্ত বিন্যাসে রপ্তানি করতে এক্সেল ব্যবহার করতে চান সেরা .csv
এরি বি ফ্রেডম্যান

gsk3: হ্যাঁ, বা Google ডক্স, যা এক্সেল '09 সাল থেকে 2007 আমদানি সমর্থন করেছে: google.com/support/forum/p/Google%20Docs/... (। আশা রাখি, এখন এটি ভাল কাজ করে করে)
বেঞ্জামিন Atkin

6
এটি আর এর কোন সংস্করণ? কী অপারেটিং সিস্টেম? Read.xlsx এর কোন সংস্করণ? আপনি কি পোস্টিং গাইড পড়েছেন? </ripleybot>
স্পেসডম্যান

4
এই প্রশ্নটি কীভাবে স্ট্যাকওভারফ্লো.com
চেজ করুন

9
আপনি পরীক্ষা করেছেন যে আর আসলে ফাইলটি সন্ধান করতে সক্ষম file.exists("C:/AB_DNA_Tag_Numbers.xlsx")?
বেন বলকার

উত্তর:


104

অদ্ভুতভাবে বাহ্যিক নির্ভরতা মুক্ত এমন একটি সমাধানের জন্য, এখন রয়েছে readxl:

রিডএক্সএল প্যাকেজটি এক্সেলের বাইরে এবং আর এর মধ্যে সহজেই তথ্য আনা সহজ করে তোলে বিদ্যমান বিদ্যমান প্যাকেজগুলির তুলনায় (যেমন gdata, xlsx, xlsReadWrite) রিডএক্সএলটির কোনও বাহ্যিক নির্ভরতা নেই তাই সমস্ত অপারেটিং সিস্টেমে ইনস্টল করা এবং ব্যবহার করা সহজ। এটি একটি একক শীটে সঞ্চিত ট্যাবুলার ডেটা দিয়ে কাজ করার জন্য ডিজাইন করা হয়েছে।

Readxl লিগ্যাসি .xls ফর্ম্যাট এবং আধুনিক এক্সএমএল-ভিত্তিক। Xlsx ফর্ম্যাট উভয় সমর্থন করে। .xls সমর্থনটি libxls সি লাইব্রেরির সাহায্যে সম্ভব হয়েছে, যা অন্তর্নিহিত বাইনারি ফর্ম্যাটটির জটিলতা অনেকগুলি সরিয়ে ফেলে। .Xlsx পার্স করতে, আমরা র‌্যাপিডএক্সএমএল সি ++ লাইব্রেরি ব্যবহার করি।

এটি এর মতো ইনস্টল করা যেতে পারে:

install.packages("readxl") # CRAN version

বা

devtools::install_github("hadley/readxl") # development version

ব্যবহার

library(readxl)

# read_excel reads both xls and xlsx files
read_excel("my-old-spreadsheet.xls")
read_excel("my-new-spreadsheet.xlsx")

# Specify sheet with a number or name
read_excel("my-spreadsheet.xls", sheet = "data")
read_excel("my-spreadsheet.xls", sheet = 2)

# If NAs are represented by something other than blank cells,
# set the na argument
read_excel("my-spreadsheet.xls", na = "NA")

* কঠোরভাবে সত্য নয়, এর জন্য Rcppপ্যাকেজটি প্রয়োজন , যার পরিবর্তে Rtools (উইন্ডোজের জন্য) বা এক্সকোড (ওএসএক্সের জন্য) প্রয়োজন, যা আর এর বাইরের নির্ভরতা But জাভা এবং পার্ল নির্ভরতা উপর সুবিধা।

আপডেট এখন রেক্সেল প্যাকেজ আছে। এটি এক্সেল ফর্ম্যাটিং, ফাংশন এবং অন্যান্য অনেক ধরণের তথ্য এক্সেল ফাইল থেকে এবং আর-তে প্রাপ্ত করার প্রতিশ্রুতি দেয়


35

আপনি XLConected প্যাকেজটি চেষ্টা করতেও পারেন। আমি এর সাথে এক্সএলএসএক্সের চেয়ে ভাল ভাগ্য পেয়েছি (প্লাস এটি .xls ফাইলগুলিও পড়তে পারে)।

library(XLConnect)
theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)

এছাড়াও, যদি আপনার ফাইলটি সন্ধান না পেয়ে সমস্যা হয় তবে ফাইল.চুজ () দিয়ে এটি নির্বাচন করে দেখুন।


7
বরং readWorksheet(loadWorkbook(...))আপনি সামান্য আরো অনেক কিছু দিয়ে succinctly একই একটি কি করতে পারেন readWorksheetFromFile(...)
হিউ

এটি আমার একটি ঝামেলাশীল শীট নিয়ে কাজ করেছে যেটি পড়ছে। Xlsx "java.lang.IllegalArgumentException" এর সাথে ক্র্যাশ হয়েছিল: সেল সূচি অবশ্যই> = 0 "হওয়া উচিত
স্কি_স্কোউ

23

আমি অবশ্যই প্যাকেজে read.xlsফাংশনটি চেষ্টা করব gdataযা xlsxপ্যাকেজের চেয়ে যথেষ্ট পরিপক্ক । এর জন্য পার্লের প্রয়োজন হতে পারে ...


21

হালনাগাদ

নীচের উত্তরটি এখন কিছুটা পুরানো হওয়ায় আমি কেবল পঠন- প্যাকেজ প্যাকেজের প্রতি দৃষ্টি আকর্ষণ করব । যদি এক্সেল শীটটি ভাল ফর্ম্যাট হয় / লাইন আউট হয়ে যায় তবে আমি এখন ওয়ার্কবুক থেকে পড়তে রিডএক্সএল ব্যবহার করব । তাহলে চাদর দুর্বল ফরম্যাট করা হয় / আউট lain তারপর আমি এখনও CSV তে রপ্তানি এবং তারপর আর সমস্যা হ্যান্ডেল করবে পারেন মাধ্যমে read.csv()অথবা প্লেইন পুরানো readLines()

আসল

আমার পছন্দের উপায়টি হ'ল কমা বিভাজিত মান (সিএসভি) ফাইলগুলিতে স্বতন্ত্র এক্সেল শিটগুলি সংরক্ষণ করা। উইন্ডোজগুলিতে, এই ফাইলগুলি এক্সেলের সাথে যুক্ত যাতে আপনি ডাবল-ক্লিক-ওপেন-ইন-এক্সেল "বৈশিষ্ট্য" সন্ধান না করেন।

সিএসভি ফাইলগুলিকে আর ব্যবহার করে read.csv(), বা, আপনি যদি কোনও স্থানে থাকেন বা কোনও ইউরোপীয় সেটিংস (যেখানে ,দশমিক স্থান হিসাবে ব্যবহৃত হয়) ব্যবহার করে কম্পিউটার সেটআপ করে ব্যবহার করা যেতে পারে read.csv2()

এই ফাংশনগুলির বুদ্ধিমান ডিফল্ট রয়েছে যা উপযুক্তভাবে ফর্ম্যাট করা ফাইলগুলি সহজ করে তোলে। প্রথম সারি বা কলামে স্যাম্পেল বা ভেরিয়েবলের জন্য কোনও লেবেল রাখুন।

সিএসভিতে ফাইল সংরক্ষণের অতিরিক্ত সুবিধা হ'ল ফাইলগুলি সরল পাঠ্য হিসাবে খুব সহজেই এগুলি পাস করা যায় এবং আপনি আত্মবিশ্বাসী হতে পারেন যে তারা যে কোনও জায়গায় খোলেন; ডেটা দেখতে বা এডিট করতে এক্সেলের দরকার নেই।


6
সিএসভি সাহায্য করবে না যেহেতু ওয়ার্কবুকটিতে বেশ কয়েকটি ওয়ার্কশিট রয়েছে এবং প্রত্যেকটিতে 100k সারি রয়েছে। ধন্যবাদ
নোলিওগো

7
আমি পৃথক পত্রকগুলি CSV ফাইল হিসাবে সংরক্ষণ করুন বলেছিলাম - এগুলি সরল পাঠ্য হিসাবে, কার্যপত্রকের আকার অপ্রাসঙ্গিক। আপনি যদি এক্সেল ওয়ার্কবুকের সাথে কাজ করার জন্য জেদ করেন তবে আর-তে ডেটা পড়ার জন্য উপলব্ধ বিকল্পগুলি আরও জটিল হয়ে উঠবে - বিকল্পগুলির জন্য আরওডিসিএম, প্যাকেজগুলি দেখুন। অবশেষে, আপনি যদি নিশ্চিত হন যে আপনি সেই প্যাকেজ এবং আর এর সর্বশেষতম সংস্করণ ব্যবহারের জন্য নির্দেশাবলী অনুসরণ করেছেন read.xlsx() এবং সম্ভাব্য ত্রুটির প্রতিবেদন করতে প্যাকেজ রক্ষণাবেক্ষণকারীকে ইমেল করুন।
গ্যাভিন সিম্পসন

এটি ওএসের মধ্যে আপনার প্রয়োজনীয় ডেটা এবং আন্তঃব্যবযোগিতার স্তরের উপর নির্ভর করে। আপনার লেবেলগুলি বা কারণগুলিতে অ-এসিআই হওয়ার সাথে সাথে আপনাকে ম্যাক / উইন / লিন জুড়ে কাজ করা দরকার, আপনি এক্সেল থেকে এবং আমদানি / রফতানি করলে মিশ্রিত অদ্ভুততা শুরু হবে। এক্সেল utf-8 গ্রেফতার করে পরিচালনা করতে পারে না (বা এই বিষয়টির জন্য সিএসভি)। সুতরাং সেক্ষেত্রে হয় আপনি এক্সলে থাকেন, বা অন্য স্প্রেডশিট অ্যাপ্লিকেশনটিতে যান (দ্বিতীয়টি সর্বদা সম্ভব হয় না)।
এফভিডি

18

উদাহরণ 2012:

library("xlsx")
FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F)
SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
  • আমি 'xlsx' প্যাকেজ চেষ্টা করব কারণ এটি পরিচালনা করা সহজ এবং যথেষ্ট পরিপক্ক বলে মনে হচ্ছে
  • আমার পক্ষে ভাল কাজ করেছে এবং পার্ল বা যা কিছু এর মতো কোনও সংযোজন দরকার নেই

উদাহরণ 2015:

library("readxl")
FirstTable  <- read_excel("MyExcelFile.xlsx", 1)
SecondTable <- read_excel("MyExcelFile.xlsx", 2)
  • আজকাল আমি এটি ব্যবহার readxlকরে ভাল অভিজ্ঞতা করেছি।
  • কোন অতিরিক্ত জিনিস প্রয়োজন
  • ভাল পারফরম্যান্স

14

এই নতুন প্যাকেজটি দেখতে সুন্দর দেখায় http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf এটির আর জাভা প্রয়োজন হয় না এবং গতির জন্য 'আরসিপিপি' ব্যবহার করে।


এবং এটি সক্রিয় বিকাশের অধীনে রয়েছে
রকসায়েন্স

4
আমি বেশ কয়েকটি দুর্দান্ত এক্সেল ওয়ার্কবুক নিয়ে কাজ করছি এবং ওপেনএক্সএলএক্স কেবলমাত্র এমন বড় ফাইলগুলি পরিচালনা করতে পারে।
জোসে আর

দুর্ভাগ্যবশত এটি "rtools" প্রয়োজন
Ferdi

@ ফেরডি মনে হয় না! শুধু একবার প্যাকেজ তৈরি করতে। পরবর্তী ব্যবহারের জন্য নয়।
রকসায়েন্স

5

আপনি যদি একই সমস্যাটিতে চলে যাচ্ছেন এবং আর আপনাকে একটি ত্রুটি দিচ্ছে - "। জেনিউ" ফাংশনটি খুঁজে পেল না - কেবল লাইব্রেরিটি আরজেভা ইনস্টল করুন। বা আপনার যদি এটি ইতিমধ্যে থাকে তবে কেবল লাইন লাইব্রেরি (আরজেভা) চালান। সমস্যা হওয়া উচিত।

এছাড়াও, প্রত্যেকের কাছে এটি স্পষ্ট হওয়া উচিত যে সিএসভি এবং টিএসটিএস ফাইলগুলির সাথে কাজ করা সহজ, তবে জীবন সহজ নয় এবং কখনও কখনও আপনাকে কেবল একটি এক্সএলএসএক্স খুলতে হয়।


4
আমি যখন gdataপ্রারম্ভকালীন বার্তাটি ২.৮.২ লোড করি তখন আমার gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.কাছে মনে হয় এটি এক্সএলএসএক্স ফাইলগুলি খোলার উচিত, যদিও আমি স্বীকার করেছি যে আমি সম্প্রতি এটি পরীক্ষা করে
দেখিনি

4
আমি নিশ্চিত করতে পারি যে gdataসংস্করণটি ২.৮.২ ফাংশন xlsxসহ ফাইলগুলি পড়ে read.xls
বেন

4

এক্সএলএক্স প্যাকেজ আর 3.1.0-র জন্য আপডেট করা হয়নি তা বুঝতে পেরে আমি সম্প্রতি আর-তে এক্সেল ফাইল আমদানির জন্য শ্যাওন হুইলারের কার্যকারিতাটি আবিষ্কার করেছি।

https://gist.github.com/schaunwheeler/5825002

ফাইলটির নামের ".xlsx" এক্সটেনশন থাকা দরকার এবং আপনি ফাংশনটি চালানোর সময় ফাইলটি খোলা যায় না।

এই ফাংশনটি অন্য ব্যক্তির কাজের অ্যাক্সেসের জন্য সত্যই কার্যকর। রিড সিএসভি ফাংশনটি ব্যবহার করার প্রধান সুবিধাটি কখন

  • একাধিক এক্সেল ফাইল আমদানি করা হচ্ছে
  • বড় ফাইলগুলি আমদানি করা হচ্ছে
  • নিয়মিত আপডেট হওয়া ফাইল

রিড সিএসভি ফাংশনটি ব্যবহারের জন্য প্রতিটি এক্সেল ডকুমেন্ট ম্যানুয়াল খোলার এবং সংরক্ষণের প্রয়োজন যা সময় সাধ্য এবং খুব বিরক্তিকর। ওয়ার্কফ্লো স্বয়ংক্রিয় করতে শ্যাচনের ফাংশন ব্যবহার করা অতএব একটি বিশাল সহায়তা।

এই সমাধানের জন্য শ্যাচনের কাছে বিগ প্রপস।


4

আমার জন্য ওপেনএক্সএক্স প্যাকেজটি সবচেয়ে সহজ উপায়ে কাজ করেছে।

install.packages("openxlsx")
library(openxlsx)
rawData<-read.xlsx("your.xlsx");

2

আপনার অপারেটিং সিস্টেমটি কী? আপনি আর এর কোন সংস্করণটি চালাচ্ছেন: 32-বিট বা 64-বিট? আপনি জাভার কোন সংস্করণ ইনস্টল করেছেন?

আমি প্রথম যখন read.xlsx()ফাংশনটি ব্যবহার শুরু করেছিলাম এবং আমার সমস্যাটি (যা আপনার সাথে সম্পর্কিত হতে পারে বা নাও হতে পারে; কমপক্ষে, এই প্রতিক্রিয়াটিকে "এটিও চেষ্টা করুন" হিসাবে দেখা উচিত) অসম্পূর্ণতার সাথে সম্পর্কিত ছিল তখন আমার অনুরূপ ত্রুটি হয়েছিল x৪-বিট জাভা সহ .xlsx প্যাকাকেজ। আমি মোটামুটি নিশ্চিত যে .xlsx প্যাকেজের 32-বিট জাভা দরকার।

32-বিট আর ব্যবহার করুন এবং 32-বিট জাভা ইনস্টল হয়েছে তা নিশ্চিত করুন। এটি আপনার সমস্যার সমাধান করতে পারে।


2

আপনি যাচাই করেছেন যে আর ফাইলটি প্রকৃতপক্ষে ফাইলটি খুঁজে পেতে সক্ষম হয়েছে, যেমন ফাইল.একজিস্ট ("সি: / এএবি_ডিএনএ_টিগ_নামার্স.এক্সলস")? - বেন বলকার 14 আগস্ট 23 '11 এ 11

উপরে মন্তব্য আপনার সমস্যার সমাধান করা উচিত ছিল:

require("xlsx")
read.xlsx("filepath/filename.xlsx",1) 

এর পরে ভাল কাজ করা উচিত।


1

আপনি যদি ওপেনডকুমেন্ট স্প্রেডশিট ফাইল ( ওএসএস ) বা একটি পুরানো এক্সেল ফর্ম্যাটকে রফতানি করে এবং ওডিএস রিডার বা উপরে উল্লিখিত এক্সেল রিডারের সাথে এটি আমদানি করেন তবে আপনি একাধিক ট্যাব এবং আরও ফর্ম্যাটিং তথ্য রাখতে সক্ষম হতে পারেন ।


1

এখানে অনেকের বক্তব্য অনুসারে, আমি একই জিনিসটি লিখছি তবে একটি অতিরিক্ত বিষয় নিয়ে!

প্রথমে আমাদের আর স্টুডিওতে এই দুটি প্যাকেজ ইনস্টল করা আছে তা নিশ্চিত করা দরকার:

  1. "রিডএক্সএল"
  2. "এক্সএল সংযোগ"

আর এ কোনও প্যাকেজ লোড করার জন্য আপনি নীচের ফাংশনটি ব্যবহার করতে পারেন:

install.packages("readxl/XLConnect")
library(XLConnect)
search()

অনুসন্ধানটি আপনার আর স্টুডিওতে বিদ্যমান প্যাকেজগুলির তালিকা প্রদর্শন করবে।

এখন আর একটি ক্যাচ, যদিও আপনার কাছে এই দুটি প্যাকেজ থাকতে পারে তবে "xlsx" ফাইলটি পড়ার সময় আপনার সমস্যার মুখোমুখি হতে পারে এবং ত্রুটিটি "ত্রুটি: কলামের নামের চেয়ে আরও কলামগুলি" হতে পারে

এই সমস্যাটি সমাধান করার জন্য আপনি কেবল নিজের এক্সেল শিটটি "এক্সএলএক্সএক্স" এ পুনরায় পুনঃস্থাপন করতে পারেন

"সিএসভি (কমা বিস্মৃত)"

এবং আপনার জীবন অত্যন্ত সহজ হবে ....

আনন্দ কর!!


1

আমি উপরের সমস্ত উত্তরগুলিতে খুব চেষ্টা করেছি। তবে, তারা আসলে সহায়তা করেনি কারণ আমি একটি ম্যাক ব্যবহার করেছি। রিও গ্রন্থাগার এই আমদানি ফাংশন যা হয়েছে মূলত Rstudio ডেটা ফাইল কোন প্রকার আমদানি করতে পারেন এমনকি যারা ফাইল, ইংরেজী ছাড়া অন্য ভাষায় ব্যবহার!

নীচে কোড ব্যবহার করে দেখুন:

    library(rio)
    AB <- import("C:/AB_DNA_Tag_Numbers.xlsx")
    AB <- AB[,1]

এই সাহায্য আশা করি। আরও বিস্তারিত রেফারেন্সের জন্য: https://cran.r-project.org/web/packages/rio/vignettes/rio.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.