Excel이 외부 통합 문서 링크에서 상대 경로를 사용하도록 만드는 방법

Excel이 외부 통합 문서 링크에서 상대 경로를 사용하도록 만드는 방법

우리 회사에서는 다른 Excel 통합 문서에 연결되는 여러 Excel 통합 문서를 사용합니다.

우리 서비스를 사용하면 모든 사람이 공유 네트워크 드라이브에 액세스하고 연결된 모든 파일의 파일 경로가 동일하게 유지되므로 괜찮습니다.

그러나 이제 Dropbox와 같은 Cloud Storage 서비스를 사용하고 싶지만 문제가 발생했습니다. 우리가 테스트한 모든 서비스에 대해 파일 경로는 컴퓨터마다 다릅니다. 예를 들어 서로 다른 두 컴퓨터에 있는 동일한 폴더의 파일 위치는 다음과 같습니다.

컴퓨터 1 Dropbox = C:[컴퓨터 1]\Dropbox\Excel 폴더\Excel 파일

컴퓨터 2 Dropbox = C:[컴퓨터 2]\Dropbox\Excel 폴더\Excel 파일

이런 일이 발생하면 다른 컴퓨터에서 파일을 열 때마다 링크의 소스를 선택해야 합니다. 머신 1의 다른 파일에 대한 링크가 포함된 파일을 생성한 다음 머신 2로 이동하면 머신 2는 경로에서 '머신 1'이 있는 파일이 저장된 위치를 알 수 없습니다. 모든 사용자가 파일을 열 때마다 각 파일을 변경해야 하기 때문에 이는 이러한 종류의 저장소를 사용하는 데 큰 장벽입니다.

모든 데이터 모델 데이터 원본도 업데이트해야 하므로 PowerPivot을 사용하고 데이터 모델의 다른 파일에 연결할 때 특히 심각해집니다.

왜 이런 일이 발생하는지 이해하지만, 이 문제를 해결하고 링크가 절대적이 아닌 상대적인 방식으로 파일을 함께 연결하는 방법이 있습니까?

우리는 Office 2013과 2016을 혼합하여 사용하고 있습니다.

답변1

특정 상황에서는 Excel에서 생성된 외부 링크가 절대 경로가 아닌 상대 경로를 사용합니다. 이는 스프레드시트의 위치에 따라 다릅니다. 가장 쉬운 방법은 Excel 문서를 동일한 폴더에 저장하는 것입니다.

자세한 내용은 다음 URL을 참조하세요(아래 발췌).https://support.microsoft.com/en-us/kb/328440

  • 연결된 파일과 원본 데이터 파일이 동일한 드라이브에 없으면 드라이브 문자가 파일 경로 및 파일 이름과 함께 저장됩니다.
  • 링크된 파일과 원본 데이터 파일이 같은 폴더에 있으면 파일 이름만 저장됩니다.
  • 소스 데이터 파일이 연결된 파일과 동일한 루트 폴더에 중첩된 폴더에 있는 경우 루트 폴더를 나타내는 속성이 저장됩니다. 공유되는 경로의 모든 부분은 저장되지 않습니다. 예를 들어 연결된 파일 C:\Mydir\Linked.xls가 C:\Mydir\Files\Source.xls에 종속된 경우 저장되는 경로의 유일한 부분은 \Files\Source.xls입니다.
  • 원본 데이터 파일이 링크된 파일에서 한 폴더 아래에 있는 경우 이를 나타내는 속성이 저장됩니다. 예를 들어 연결된 파일은 C:\Mydir\Files\Myfile\Linked.xls이고 원본 데이터 파일은 C:\Mydir\Files\Source.xls입니다. Excel에서는 \MyDir\Files\ .. \Source.xls만 저장합니다. 참고 이렇게 하면 원본 파일이 위치한 폴더의 추가 하위 폴더에 링크된 파일을 복사할 때 링크가 유지됩니다. 예를 들어 링크된 파일은 C:\Mydir\Files\Myfiles1\Linked.xls이고 원본 데이터 파일은 C:\Mydir\Files\Source.xls이고, 연결된 파일 Linked.xls는 C:\Mydir\Files\Myfiles1 폴더에서 C:\Mydir\Files\Myfiles2 폴더로 복사됩니다. C:\Mydir\Files\Source.xls에 대한 링크는 유지됩니다.

답변2

귀하의 상황에서 도움이 될지는 모르겠지만 Excel에 상대 경로와 절대 경로를 사용하도록 지시하는 설정이 있다는 사실은 아직 아무도 언급하지 않았습니다. 그리고 정말로 상대 경로를 사용하고 싶다면 불행하게도 Microsoft는 도움이 되도록 노력할 것이며 해당 사용자를 기준으로 상대 경로를 만들 것이므로 링크는 대상이 모든 사용자에 대해 정확히 동일한 상대 경로가 되도록 할 수 있는 경우에만 작동합니다. 사용자. 그것은 다른 사람이 반대표를 던진 제안이었습니다.상대 URL 구성을 위한 설정 스크린샷

답변3

따라서 절대 경로 대신 상대 경로를 사용할 수 있으므로 데이터 원본 파일을 사용하는 워크시트와 동일한 위치에 데이터 원본 파일을 유지하는 한 데이터 원본이 계속 작동합니다.

Excel 사용자 인터페이스에는 경로를 변경할 수 있는 방법이 없는 것 같습니다.

그러나 UI와 다른 방식으로 XLSX를 편집할 수 있습니다. XLSX 파일 이름을 .zip으로 바꾸면 zip 파일인 것처럼 "마치" 추출할 수 있습니다(실제로 Excel 통합 문서는 압축 파일입니다). 그런 다음 추출된 zip 파일에서 xl 디렉터리를 열고 그 안에 "connections.xml" 파일을 엽니다.

여기에서 "sourceFile"을 찾을 수 있으며 이를 변경하여 파일 이름만 참조하도록 할 수 있습니다.

그런 다음 "connections.xml"을 다시 "zip으로 압축된" Excel 파일로 이동하고 이름을 다시 XLSX로 바꿉니다.

디렉터리를 다시 압축하고 XLSX로 이름을 바꾸는 것만으로는 충분하지 않습니다. 모든 zip 명령은 Microsoft Excel과 항상 호환되지 않는 다양한 압축 알고리즘 및 옵션을 사용할 수 있기 때문입니다.

따라서 가장 좋은 방법은 "connections.xml"을 기존 zip 파일로 다시 이동하는 것입니다(또는 zip 파일 처리기가 허용하는 경우 zip 파일에서 직접 파일을 편집하는 것이 더 좋습니다).

ExcelFile.xlsx\xl\connections.xml 파일은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<connections xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="xr16" xmlns:xr16="http://schemas.microsoft.com/office/spreadsheetml/2017/revision16"><connection id="1" xr16:uid="{F9606253-9C57-4B65-839A-8DEF5AAEA9F7}" keepAlive="1" name="ThisWorkbookDataModel" description="Data Model" type="5" refreshedVersion="6" minRefreshableVersion="5" background="1"><dbPr connection="Data Model Connection" command="Model" commandType="1"/><olapPr sendLocale="1" rowDrillCount="1000"/><extLst><ext uri="{DE250136-89BD-433C-8126-D09CA5730AF9}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:connection id="" model="1"/></ext></extLst></connection><connection id="2" xr16:uid="{7FE915B8-2095-40EC-B6DC-A589A5A2D08D}" name="TimeTrackingUserEntryLog" type="103" refreshedVersion="6" minRefreshableVersion="5" refreshOnLoad="1" saveData="1"><extLst><ext uri="{DE250136-89BD-433C-8126-D09CA5730AF9}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:connection id="TimeTrackingUserEntryLog" autoDelete="1"><x15:textPr prompt="0" sourceFile="C:\Dropbox\Wonderful\LifeorLive\TimeTrackingUserEntryLog.csv" tab="0" comma="1"><textFields count="5"><textField type="YMD"/><textField/><textField type="text"/><textField type="text"/><textField type="text"/></textFields></x15:textPr><x15:modelTextPr headers="1"/></x15:connection></ext></extLst></connection></connections>

여기서 C:\Dropbox 등은 csv 파일인 데이터 소스의 경로입니다.

전체 경로를 제거하고 "datasourcefilename.csv"를 그대로 둘 수 있습니다.

도움이 되었기를 바랍니다! ^^

답변4

작업 솔루션은 여기에서 찾을 수 있습니다.

https://excel.tv/how-to-create-a-relative-file-path-in-power-query/

관련 정보